Page 1 sur 1

Animation de sprites 3D

Publié : mer. 11/juil./2007 11:56
par Anonyme
Voici une méthode montrant comment animé un sprite3D en changeant les Coordonées UV de se sprite :

j'utilise cet image :

Image

Code : Tout sélectionner

InitSprite() : InitSprite3D() : InitKeyboard()
OpenScreen(800,600,32,"")


Structure vertex
    sx.f
    sy.f
    sz.f
    rhw.f
    Color.l
    specular.l
    tu.f
    tv.f
EndStructure

Structure PB_Sprite3D
     Texture.l         
     Vertice.vertex[4]
     Width.w
     Height.w
EndStructure



UsePNGImageDecoder()
LoadSprite(0,"Ring.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
CreateSprite3D(0,0)







FrameU.f = 0


Repeat
ClearScreen(0)
  ExamineKeyboard()


Start3D()
*S.PB_Sprite3D = IsSprite3D(0)



*S\Vertice[0]\sx=0
*S\Vertice[0]\sy=0

*S\Vertice[1]\sx=64
*S\Vertice[1]\sy=0

*S\Vertice[2]\sx=0
*S\Vertice[2]\sy=64

*S\Vertice[3]\sx=64
*S\Vertice[3]\sy=64



*S\Vertice[0]\tu=FrameU
*S\Vertice[0]\tv=0

*S\Vertice[1]\tu=1/4+FrameU
*S\Vertice[1]\tv=0

*S\Vertice[2]\tu=FrameU
*S\Vertice[2]\tv=1

*S\Vertice[3]\tu=1/4+FrameU
*S\Vertice[3]\tv=1






If T.l < ElapsedMilliseconds()
T = ElapsedMilliseconds()+50
FrameU + 1/4
EndIf 


If FrameU>1
FrameU=0
EndIf


DisplaySprite3D(0,0,0)
Stop3D()



  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)

Publié : mer. 11/juil./2007 12:23
par wolfjeremy
OUai pas mal pour un sonic :P

Par contre faut remplacer stop3d() par start3d() (le premier)

Re: Animation de sprites 3D

Publié : jeu. 12/juil./2007 10:02
par beauregard
:D
intéressant, et merci !

Re: Animation de sprites 3D

Publié : dim. 29/juil./2007 0:21
par beauregard
Encore une fois, j'ai planché sur ton code comme ce n'est pas mentalement permis, et je n'ai toujours rien compris.

pourrai-tu s'il te plait faire une modification du code, afin d'afficher seulement les 3 premières images, pour que je puisse avoir un élément de comparaison.

Re: Animation de sprites 3D

Publié : dim. 29/juil./2007 9:19
par Backup
Cpl.Bator a écrit :Voici une méthode montrant comment animé un sprite3D en changeant les Coordonées UV de se sprite :

j'utilise cet image :

Image
le lien est mort :)

Publié : dim. 29/juil./2007 10:37
par Anonyme
problème avec purestorage...

Re: Animation de sprites 3D

Publié : dim. 29/juil./2007 11:40
par beauregard
Dobro a écrit :
Cpl.Bator a écrit :Voici une méthode montrant comment animé un sprite3D en changeant les Coordonées UV de se sprite :

j'utilise cet image :

Image
le lien est mort :)
4 images de 64*64, que l'on peut faire soit même, c'est pas grave.

pourrait modifier ton code pour animer seulement les 3 premières images, pitié Cpl.Bator !

Publié : dim. 29/juil./2007 12:48
par Anonyme
FrameU + 1/4
par
FrameU + 1/3
:D

Publié : dim. 29/juil./2007 14:38
par beauregard
Cpl.Bator a écrit :
FrameU + 1/3
merci.

Re: Animation de sprites 3D

Publié : mer. 27/janv./2010 11:23
par Ar-S
L'image n'est plus dispo mais donc j'en déduis que c'était une image "planche" fond transparent de 256 x 64 avec 4 anneaux (de 64) représentant l'animation ?
j'ai bon ?

Re: Animation de sprites 3D

Publié : mer. 27/janv./2010 11:50
par flaith
Ar-S a écrit :L'image n'est plus dispo mais donc j'en déduis que c'était une image "planche" fond transparent de 256 x 64 avec 4 anneaux (de 64) représentant l'animation ?
j'ai bon ?
héhé, les anneaux sont là : http://www.purebasic.fr/french/viewtopic.php?f=6&t=7049 :D

Re: Animation de sprites 3D

Publié : mer. 27/janv./2010 11:51
par Le Soldat Inconnu
je n'arrive pas à le faire fonctionner ...

Re: Animation de sprites 3D

Publié : mer. 27/janv./2010 12:24
par Ar-S
J'ai trouvé un très bon exemple d'animation de sprite/sprite3D ici : http://www.flashpulse.com/purebasic/AnimateSprite.zip

Re: Animation de sprites 3D

Publié : mer. 27/janv./2010 21:57
par Le psychopathe
pas mal l'exemple, faut que je pige ^^