Page 4 sur 5
Re: Crazy Sheep
Publié : ven. 26/sept./2014 1:42
par MetalOS
J'ai remis à jour mon code mais franchement je galère pour rendre transparent le tritre du jeu qui est un fichier PNG avec une transparence. Voici mon code:
Code : Tout sélectionner
;***********************
; Crazy Sheep
; Version 1.0.0
; By MetalOS
;***********************
InitEngine3D()
InitKeyboard()
InitMouse()
InitSprite()
Enumeration
#Camera
#EntityPlanet
#Light
#ImageTitre
#SpriteTitre
#Light2
EndEnumeration
Add3DArchive("Data\Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data\Models", #PB_3DArchive_FileSystem)
Add3DArchive("Data\Scripts", #PB_3DArchive_FileSystem)
Add3DArchive("Data\GUI", #PB_3DArchive_FileSystem)
Parse3DScripts()
OpenScreen(1366,768,32,"")
SkyDome("cloud.jpg", 30)
CreateCamera(#Camera,0,0,100,100)
MoveCamera(#Camera,0.2,0,5, #PB_Absolute)
CameraBackColor(#Camera, RGB(42, 90, 183))
CameraLookAt(#Camera,0,0,0)
;-Entity
CreateEntity(#EntityPlanet, LoadMesh(0, "Planete.mesh"), #PB_Material_None)
RotateEntity(#EntityPlanet, 30, -20, 0)
CreateLight(#Light, RGB(255, 255, 255), 10, 0, 30, #PB_Light_Point) ; Light blanc
;Sprit
UsePNGImageDecoder()
LoadImage(#ImageTitre, "Data\Textures\Titre.png")
If CreateSprite(#SpriteTitre, 674, 200, #PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(#SpriteTitre))
DrawImage(ImageID(#ImageTitre),0,0)
StopDrawing()
EndIf
Repeat
ExamineKeyboard()
RenderWorld()
DisplaySprite(#SpriteTitre, 355, 10)
DisplayTransparentSprite(#SpriteTitre, 355, 10, 0, RGB(0, 0, 0))
TransparentSpriteColor(#SpriteTitre, RGB(0, 0, 0))
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Et voici le résultat:
Le fond noir du texte ne devrais pas apparaître normalement mais je ne sais pas comment m'y prendre. Création d'un sprite, d'un material... franchement je ne voie pas.
Re: Crazy Sheep
Publié : ven. 26/sept./2014 5:43
par raven
Code : Tout sélectionner
;DisplaySprite(#SpriteTitre, 355, 10)
DisplayTransparentSprite(#SpriteTitre, 355, 10, 0, RGB(0, 0, 0))
TransparentSpriteColor(#SpriteTitre, RGB(0, 0, 0))
tu l'affiche pas 2 fois?
Re: Crazy Sheep
Publié : ven. 26/sept./2014 8:11
par Cool Dji
Raven a raison; enlève le displaysprite...
MetalOs, dans ton code, tu affiches une fois le titre avec le noir autour,
puis tu affiches une fois avec le DisplaytransparentSprite mais comme tu a affiché juste avant sans transparent, on voit le contour noir.
Re: Crazy Sheep
Publié : ven. 26/sept./2014 13:12
par MetalOS
Ça ne change rien j'ai toujours le fond du titre reste noir. Sur Mac c'est tous le skydome qui devient noir.
Re: Crazy Sheep
Publié : ven. 26/sept./2014 16:09
par MetalOS
Re: Crazy Sheep
Publié : ven. 26/sept./2014 21:05
par MetalOS
Personne n'a d'idée sur le problème ?
Re: Crazy Sheep
Publié : ven. 26/sept./2014 21:25
par Cool Dji
Ok, je pense avoir trouvé mais je n'ai pas essayé pour vérifier.
Si c'est pas ça, tu peux faire une archive avec les fichiers ?
Tu perds l'alphablanding avec le drawimage
Code : Tout sélectionner
LoadImage(#ImageTitre, "Data\Textures\Titre.png")
If CreateSprite(#SpriteTitre, 674, 200, #PB_Sprite_AlphaBlending)
StartDrawing(SpriteOutput(#SpriteTitre))
DrawImage(ImageID(#ImageTitre),0,0)
StopDrawing()
EndIf
fait directement un loadsprite(#SpriteTitre, "Data\Textures\Titre.png",#PB_Sprite_AlphaBlending)
Re: Crazy Sheep
Publié : ven. 26/sept./2014 23:46
par MetalOS
Ca ne change rien, si j'ai deux minutes je ferais une archive.
Re: Crazy Sheep
Publié : sam. 27/sept./2014 10:20
par MetalOS
Archive à télécharger ici:
Télécharger
Merci de votre aide.
Re: Crazy Sheep
Publié : sam. 27/sept./2014 10:42
par falsam
De cette maniére ça fonctionne.
Code : Tout sélectionner
;***********************
; Crazy Sheep
; Version 1.0.0
; By MetalOS
;***********************
InitEngine3D()
InitKeyboard()
InitMouse()
InitSprite()
Enumeration
#Camera
#EntityPlanet
#Light
#ImageTitre
#SpriteTitre
EndEnumeration
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Models", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Scripts", #PB_3DArchive_FileSystem)
Add3DArchive("Data/GUI", #PB_3DArchive_FileSystem)
Parse3DScripts()
AntialiasingMode(#PB_AntialiasingMode_x6)
OpenScreen(1366,768,32,"")
SkyDome("cloud.jpg", 30)
CreateCamera(#Camera,0,0,100,100)
MoveCamera(#Camera,0.2,0,5, #PB_Absolute)
CameraBackColor(#Camera, RGB(42, 90, 183))
CameraLookAt(#Camera,0,0,0)
;-Entity
CreateEntity(#EntityPlanet, LoadMesh(0, "Planete.mesh"), #PB_Material_None)
RotateEntity(#EntityPlanet, 30, -20, 0)
CreateLight(#Light, RGB(255, 255, 255), 10, 0, 30, #PB_Light_Point) ; Light blanc
;Sprit
UsePNGImageDecoder()
LoadImage(#ImageTitre, "Data/Textures/Titre.png")
If CreateSprite(#SpriteTitre, 674, 200)
StartDrawing(SpriteOutput(#SpriteTitre))
DrawImage(ImageID(#ImageTitre),0,0)
StopDrawing()
EndIf
Repeat
ExamineKeyboard()
RenderWorld()
DisplayTransparentSprite(#SpriteTitre, 355, 10, 255)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Le chargement du sprite pourrait être plus simple, mais peut être que tu as tes raisons pour procéder de cette manière
J'aurai remplacé
Code : Tout sélectionner
;Sprit
UsePNGImageDecoder()
LoadImage(#ImageTitre, "Data/Textures/Titre.png")
If CreateSprite(#SpriteTitre, 674, 200)
StartDrawing(SpriteOutput(#SpriteTitre))
DrawImage(ImageID(#ImageTitre),0,0)
StopDrawing()
EndIf
par
Code : Tout sélectionner
;Sprit
UsePNGImageDecoder()
LoadSprite(#SpriteTitre, "Data/Textures/Titre.png", #PB_Sprite_AlphaBlending)
De plus ça évite le bug du
Pure Black que tu as peut être constater lors de l’exécution de mon précédent code.
Re: Crazy Sheep
Publié : sam. 27/sept./2014 11:57
par MetalOS
Oui ce code là fonctionne à merveille
Code : Tout sélectionner
;***********************
; Crazy Sheep
; Version 1.0.0
; By MetalOS
;***********************
InitEngine3D()
InitKeyboard()
InitMouse()
InitSprite()
Enumeration
#Camera
#EntityPlanet
#Light
#ImageTitre
#SpriteTitre
EndEnumeration
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Models", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Scripts", #PB_3DArchive_FileSystem)
Add3DArchive("Data/GUI", #PB_3DArchive_FileSystem)
Parse3DScripts()
AntialiasingMode(#PB_AntialiasingMode_x6)
OpenScreen(1366,768,32,"")
SkyDome("cloud.jpg", 30)
CreateCamera(#Camera,0,0,100,100)
MoveCamera(#Camera,0.2,0,5, #PB_Absolute)
CameraBackColor(#Camera, RGB(42, 90, 183))
CameraLookAt(#Camera,0,0,0)
;-Entity
CreateEntity(#EntityPlanet, LoadMesh(0, "Planete.mesh"), #PB_Material_None)
RotateEntity(#EntityPlanet, 30, -20, 0)
CreateLight(#Light, RGB(255, 255, 255), 10, 0, 30, #PB_Light_Point) ; Light blanc
;Sprit
;Sprit
UsePNGImageDecoder()
LoadSprite(#SpriteTitre, "Data/Textures/Titre.png", #PB_Sprite_AlphaBlending)
Repeat
ExamineKeyboard()
RenderWorld()
DisplayTransparentSprite(#SpriteTitre, 355, 10, 255)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Autrement je n'est aucune raison particulière d'avoir procédé ainsi, j'ai essayer de suivre d'autres exemples qui mon conduit à cette erreur. Merci de ton aide falsam

Re: Crazy Sheep
Publié : sam. 27/sept./2014 14:40
par falsam
falsam a écrit :Merci de ton aide falsam
De rien et vivement la suite

Re: Crazy Sheep
Publié : sam. 27/sept./2014 14:55
par MetalOS
Quoi ça ne suiffe pas...

Re: Crazy Sheep
Publié : sam. 27/sept./2014 15:09
par falsam
MetalOS a écrit :Quoi ça ne suiffe pas...

Tssss .... tu nous fais saliver avec une belle intro et ça s'arrete là ! Il y a des filles avec qui ça fonctionne de la même manière

Re: Crazy Sheep
Publié : sam. 27/sept./2014 15:11
par MetalOS
Lol