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:

Image

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... :-D

Re: Crazy Sheep

Publié : sam. 27/sept./2014 15:09
par falsam
MetalOS a écrit :Quoi ça ne suiffe pas... :-D
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 :mrgreen:

Re: Crazy Sheep

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