FlipSprite3D Ou Sprite Spécifique

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

FlipSprite3D Ou Sprite Spécifique

Message 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
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Re: FlipSprite3D Ou Sprite Spécifique

Message 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...
config de mon ordi: seven, directx11, Pentium(R) DualCore E5700, RadeonHD 4550 512MB, PureBasic 4.61 x86
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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 !
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Message 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.
config de mon ordi: seven, directx11, Pentium(R) DualCore E5700, RadeonHD 4550 512MB, PureBasic 4.61 x86
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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
Répondre