Page 1 sur 1

FlipSprite3D Ou Sprite Spécifique

Publié : sam. 08/août/2009 7:48
par Thyphoon
J'ai besoin de votre avis !
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

Re: FlipSprite3D Ou Sprite Spécifique

Publié : sam. 08/août/2009 23:48
par beauregard
Thyphoon a écrit :j'aimerais que mon code sois "Facilement" Portable sur Linux et MacOsX
c'est normalement à Fred de le faire, surtout sur Linux.

Code : Tout sélectionner

- Code source du programme immédiatement transposable sur Windows, AmigaOS ou Linux
:?
Maintenant, cela va sérieusement te compliquer la tâche...

Publié : dim. 09/août/2009 6:03
par Thyphoon
c'est pour ça que ça fait 2 jours que je me demande ce que je fais ...
MMMmmmm pas evident de faire un choix, car une fois un choix fais, il sera difficile de revenir en arrière ...
je crois que je vais essayer d'utiliser le code pour inverser les sprites.... En esperant qu'une tel fonction sera intégré en natif a pb dans les prochaines versions !

Publié : dim. 09/août/2009 11:12
par beauregard
Thyphoon a écrit :c'est pour ça que ça fait 2 jours que je me demande ce que je fais ...
MMMmmmm pas evident de faire un choix, car une fois un choix fais, il sera difficile de revenir en arrière ...
je crois que je vais essayer d'utiliser le code pour inverser les sprites.... En esperant qu'une tel fonction sera intégré en natif a pb dans les prochaines versions !
c'est clair. J'ai fait un peu de recherche( basic + linux):
http://www.purebasic.fr/french/viewtopi ... ght=gambasmmh, d'après ce que j'ai vu çà et là, ce basic a encore beaucoup de chemin à parcourir, ou pas, pour répondre à nos exigences d'ordre ludique.

Publié : dim. 09/août/2009 13:51
par Thyphoon
Purebasic avance dans bon chemin, parfois un peu trop lentement dans certain domaine ! Mais j'ai confiance !
Si j'arrive a finir mon jeu, et qu'il est réussi (on peut rêver) j'aurais peut être un peu plus de poids lors de requête d'amélioration lollllll:P on peut toujours rêver !! :D