[auto resolu] Sprite3D & #PB_Sprite_AlphaBlending

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

[auto resolu] Sprite3D & #PB_Sprite_AlphaBlending

Message par Ar-S »

Bon, pour gérer au mieux l'animation de sprite et surtout le détourage, je passe au sprite3D.
Enfin je passe c'est un bien grand mot... Vraiment je trouve tout ça pas pratique !
- A ce que j'ai compris il faut créer un sprite2D puis le transformer en sprite3D (va comprendre charles...)
- J'ai donc créé des images séparées comme me l'a conseillé Dobro, toutes font 150x150.
- Les images sont au format PNG, avec un fond transparent.

Avant de créer une animation, j'aimerai déjà voir mon sprite3D à l'ecran hors là, rien et je ne vois pas pourquoi, j'ai suivi vos examples et la doc.
cette dernière annonce
Pour afficher un sprite avec le support de l'alpha-channel, le sprite qui a servi à la création du sprite 3D doit avoir l'option #PB_Sprite_AlphaBlending.
Le soucis est que si je fais : DisplaySprite3D(#egg,jojo(1)\PosX ,jojo(1)\PosY,#PB_Sprite_AlphaBlending)
l'écran n'affiche rien, nib. Et le débuggeur reste muet comme une carpe.
Tout l'après midi à me prendre la tête la dessus et rien, ça commence à me gonfler. Autant c'est jouissif quand on arrive à quelque chose, autant on a envie de péter l'écran avec le clavier quand ça avance pas.

J'ai aussi redimensionné mes images en 128x128 (au lieu de 150x150) vu que la doc dit que c'est préférable d'utiliser des textures 16x16 32x32 etc...

Désolé de vous gonfler encore avec ça mais la je craque.

L'image m1.png : Image

Code : Tout sélectionner

; Initiation au Sprite3D
InitSprite() : InitKeyboard() : InitSprite3D()
UsePNGImageDecoder()

Enumeration
  #egg
EndEnumeration

;fenêtre
Lfenetre=GetSystemMetrics_(#SM_CXSCREEN)  ; recup la resolution de l'ecran en cours
Hfenetre=GetSystemMetrics_(#SM_CYSCREEN)
If Lfenetre>800 And Hfenetre>400
  Lfenetre=800 : Hfenetre=400
EndIf
Lscreen=Lfenetre : Hscreen=Hfenetre-20
centre=Lscreen/2-LPalette/2 ; on trouve le centre de la fenetre

OpenWindow(0, #PB_Ignore, #PB_Ignore, Lfenetre, Hfenetre, "Window", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0, 0, Hfenetre-20, 100, 20, "Quitter")
OpenWindowedScreen(WindowID(0), 0, 0, Lscreen, Hscreen, 0, 0, 0)


Structure jojo
  PosX.l
  PosY.l
  BougeX.l
  BougeY.l
  image.l
  Vitesse.l
EndStructure
Global Dim jojo.jojo(1)

jojo(1)\PosX=0
jojo(1)\PosY=Hscreen-128
jojo(1)\Vitesse=7


;Deplacement vers la droite  ; animation : image 0.1.2.3.4
LoadSprite(0,"img/m1.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
LoadSprite(1,"img/m2.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
LoadSprite(2,"img/m3.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
LoadSprite(3,"img/m4.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
LoadSprite(4,"img/m5.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)

;Images Saut ; animation : image 0.5.6.7
;LoadSprite(5,"img/s1.png",#PB_Sprite_Alpha) ; commenté car identique à m1.png
LoadSprite(5,"img/s2.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
LoadSprite(6,"img/s3.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
LoadSprite(7,"img/s4.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)

CreateSprite3D(#egg,0)
;Sprite3DQuality(1)

;{- Event loop
Repeat
  
  Event= WindowEvent ()
  Delay (2)
  ExamineKeyboard ()
  
  
  If KeyboardPushed(#PB_Key_Left)
    jojo(1)\PosX=jojo(1)\PosX-jojo(1)\Vitesse
    If jojo(1)\PosX<0
      jojo(1)\PosX=0
    EndIf
    
  EndIf
  
  If KeyboardPushed(#PB_Key_Right)
    jojo(1)\PosX=jojo(1)\PosX+jojo(1)\Vitesse
    If jojo(1)\PosX>Lscreen-128
      jojo(1)\PosX=Lscreen-128
    EndIf
  EndIf
  
  If KeyboardPushed(#PB_Key_Escape)
    Break
  EndIf
  
  Repeat
    Event = WindowEvent()
    
    Select Event
      Case #PB_Event_Gadget
        If EventGadget() = 0
          End
        EndIf
        
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until Event = 0
  
  ;---AFFICHAGE----
  
  If Start3D()
      
      DisplaySprite3D(#egg,jojo(1)\PosX ,jojo(1)\PosY,255)
      
    Stop3D()
  Else
    Debug "erreur start3D"
    
  EndIf
  FlipBuffers()
  ClearScreen(RGB(0, 0, 0))
  
ForEver
Dernière modification par Ar-S le mar. 26/janv./2010 19:19, modifié 3 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Sprite3D

Message par Ar-S »

Putain je viens de trouver la solution le #PB_Sprite_AlphaBlending fallait l'ajouter au create sprite
Bordel la doc est MAL FOUTUE !

J'ai modifié le code ci dessus, il marche
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: [auto resolu] Sprite3D & #PB_Sprite_AlphaBlending

Message par cederavic »

Pourtant la doc est assez explicite à ce sujet...

Dans LoadSprite() :
#PB_Sprite_AlphaBlending: Le sprite est créé avec le support de l'alpha-channel, le format d'image doit le gérer
(seul PNG et TIFF pour l'instant). Le mode #PB_Sprite_Texture doit être aussi spécifié, et le sprite
devra être affiché avec DisplaySprite3D().
Dans DisplaySprite3D() :
Pour afficher un sprite avec le support de l'alpha-channel, le sprite qui a servi à la création du sprite 3D doit avoir l'option #PB_Sprite_AlphaBlending.
Edit : C'est vrai l'info est manquante pour CreateSprite() !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [auto resolu] Sprite3D & #PB_Sprite_AlphaBlending

Message par Ar-S »

Edit : C'est vrai l'info est manquante pour CreateSprite() !
Exactement :wink:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [auto resolu] Sprite3D & #PB_Sprite_AlphaBlending

Message par Backup »

ptete en parler a Comtois ... :)
Répondre