Dans le developpement de mon jeu, j'ai trouvé un code permettant de renverser un sprite Horizontalement ou verticalement facilement, Mais ce code n'est pas natif pour PB et ça ne marche qu'avec DirectX. donc j'ai le choix d'utiliser cette technique ou bien de créer en double les sprites de mon personnage (vers la droite et vers la gauche). j'aimerais que mon code sois "Facilement" Portable sur Linux et MacOsX et facile a maintenir dans l'avenir. Vu que ce code n'est pas de moi, je ne sais pas si je serais capables de le modifier pour des prochaines version de Pb ou de DirectX a votre avis que dois-je utiliser ?
Voici le code :
Code : Tout sélectionner
;Doit être executer une fois apres un openscreen
Macro InitFlipEx()
CompilerIf Subsystem("Directx9")
Global D3Ddevice_interface9.IDirect3DDevice9
Start3D()
!extrn _PB_Screen_Direct3DDevice
!MOV dword EAX, [_PB_Screen_Direct3DDevice]
!MOV dword [v_D3Ddevice_interface9],EAX
D3Ddevice_interface9\SetRenderState(22,1)
Stop3D()
CompilerElse ;Directx7
Global D3Ddevice_interface7.IDirect3DDevice7
Start3D()
!extrn _PB_Direct3D_Device
!MOV dword EAX, [_PB_Direct3D_Device]
!MOV dword [v_D3Ddevice_interface7],EAX
D3Ddevice_interface7\SetRenderState(22,1) ;(D3DRENDERSTATE_CULLMODE,D3DCULL_NONE)
Stop3D()
CompilerEndIf
EndMacro
Macro FlipHSpriteEx(idsprite)
TransformSprite3D(idsprite, SpriteWidth(idsprite), 0, 0, 0, 0, SpriteHeight(idsprite), SpriteWidth(idsprite), SpriteHeight(idsprite))
EndMacro