Dans la série je suis plein de questions en voilà une autre :
J'utilise pour mon projet la librairie Sprite3D.
En regardant l'exemple j'ai vu qu'on pouvait effectuer sur le sprite quelques effets comme le zoom ou la rotation.
De mon côté j'aurai besoin d'un effet tout simple, le mirroir.
C'est juste histoire de ne pas charger deux fois le même sprite dans l'executable : un qui est tourné vers la gauche, l'autre vers la droite (sans compter toutes les frames qui décomposent l'animation de marche ou de saut).
Aurais-je raté quelque chose dans la doc ?
existe t il une librairie tierce qui le prend en charge ou mieux, un petit bout de code pour le réaliser ?
Merci !
mirror
-
- Messages : 121
- Inscription : mer. 21/janv./2004 22:18
mirror
10 CLS
20 PRINT "Vive PureBasic"
30 GOTO 20
20 PRINT "Vive PureBasic"
30 GOTO 20
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
de toute façon, mirroir ou pas, il faut créer un sprite. le plus simple étant de faire de nouvelle image.
sinon, il faire un startdrawing(spriteoutput(#sprite)) pour stocker tous les couleurs du sprite dans un tableau puis créer un nouveau sprite avec createsprite, l'éditer avec startdrawing(spriteoutput(#sprite)) et mettre les couleur en prenant la tableau mais à l'envers donc avec un
for x = 100 to 0 step -1
sinon, il faire un startdrawing(spriteoutput(#sprite)) pour stocker tous les couleurs du sprite dans un tableau puis créer un nouveau sprite avec createsprite, l'éditer avec startdrawing(spriteoutput(#sprite)) et mettre les couleur en prenant la tableau mais à l'envers donc avec un
for x = 100 to 0 step -1
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Il n'y a pas moyen de faire un effet mirroir directement avec les commandes sprite3D, il faut effectivement créer un 2ème sprite.
Dans "tirez sur la nappe", je fait comme ça:
Le truc, c'est de jouer avec UseBuffer() et ClipSprite().
Ca doit être plus rapide que de passer par une image.
Dans "tirez sur la nappe", je fait comme ça:
Code : Tout sélectionner
For numsprite=10000 To 10000+49+36*50
CreateSprite(numsprite,8,8,#pb_sprite_texture)
UseBuffer(numsprite)
For x=0 To 7
ClipSprite(numsprite-10000,x,0,1,8)
DisplaySprite(numsprite-10000,7-x,0)
Next
If WindowEvent()=#wm_keyup
HideWindow(0,1) : End
EndIf
CreateSprite3D(numsprite,numsprite)
Next
Ca doit être plus rapide que de passer par une image.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
parcequ'il est mieux organisé.
(Ly Tin Wheedle)