Animation de sprites 3D
Publié : mer. 11/juil./2007 11:56
Voici une méthode montrant comment animé un sprite3D en changeant les Coordonées UV de se sprite :
j'utilise cet image :

j'utilise cet 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)