j'aimerais faire un effet graphique un peu comme dans le clip "One of these days" de Pink floyd
pour l'instant c'est plutot moche mais bon, c'est un début
J'aimerais savoir si il est possible de retirer cette #*@* de ligne en diagonale qui gache tout due au sprite3D qui est constitué de 2 vertex...
Code : Tout sélectionner
;{--------------------------- Init Sprite & Init Keyboard -------------------------------
If InitSprite () = 0 Or InitKeyboard()= 0 Or InitSprite3D() = 0
MessageRequester ("Erreur", "Impossible d'initialiser directx",#PB_MessageRequester_Ok)
End
EndIf
;}---------------------------------------------------------------------------------------
;{----------------------------------- Plein écran --------------------------------------
#WindowWidth = 640
#WindowHeight = 480
If OpenScreen(#WindowWidth, #WindowHeight, 32, "Démo") = 0
MessageRequester ("Erreur", "Impossible d'ouvrir l'écran",#PB_MessageRequester_Ok)
End
EndIf
;}----------------------------------------------------------------------------------------
Enumeration
#SpriteBuffer
#SpriteBuffer3D
#Sprite1
#Sprite3D1
#nbSprites = 20
#tmpSprite
EndEnumeration
Global Dim PinkFloyd_x(#nbSprites)
Global Dim PinkFloyd_x2(#nbSprites)
Procedure PinkFloyd_Init ()
CreateSprite(#SpriteBuffer,256,256, #PB_Sprite_Texture)
CreateSprite3D(#SpriteBuffer3D, #SpriteBuffer)
CreateSprite(#Sprite1, 32, 32,#PB_Sprite_Texture)
If StartDrawing(SpriteOutput(#Sprite1))
For t = 1 To 16
c = t * 16
Circle(16, 16, 16 - t, RGB(c,c,c))
Next
StopDrawing()
EndIf
CreateSprite3D(#Sprite3D1,#Sprite1)
For i=0 To #nbSprites-1
PinkFloyd_x(i) = Random (220)
If Random (100) > 50
PinkFloyd_x2(i) = 1
Else
PinkFloyd_x2(i) = -1
EndIf
Next
EndProcedure
Procedure PinkFloyd_Main ()
UseBuffer(#SpriteBuffer)
GrabSprite(#tmpSprite, 0, 0, 255, 255)
DisplayTransparentSprite(#tmpSprite, 0, 3)
For i=0 To #nbSprites-1
DisplayTransparentSprite(#Sprite1,PinkFloyd_x(i),0)
PinkFloyd_x(i) = PinkFloyd_x(i) + PinkFloyd_x2(i)
If PinkFloyd_x(i) >= 265 Or PinkFloyd_x(i) <= -10
PinkFloyd_x2(i) = - PinkFloyd_x2(i)
EndIf
Next
CreateSprite3D(#SpriteBuffer3D, #SpriteBuffer)
UseBuffer(-1)
If Start3D()
TransformSprite3D(#SpriteBuffer3D, 0,240,100, 640,240,100, 640,480,10, 0,480,10)
DisplaySprite3D(#SpriteBuffer3D, 0,0, 255)
Stop3D()
EndIf
FlipBuffers()
EndProcedure
PinkFloyd_Init ()
Repeat
PinkFloyd_Main ()
ExamineKeyboard ()
Until KeyboardPushed (#PB_Key_Escape)
End