[ok] Animation de Sprite / Decoupe

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

[ok] Animation de Sprite / Decoupe

Message par Ar-S »

Salut,
J'ai créé le début d'une planche de sprite de mon (futur) héros "Johnny Egg" que j'ai créé au collège y'a déjà une bonne vingtaine d'années.

J'ai eu beau lire les pages
http://www.purebasic.fr/french/viewtopi ... 88&start=0
http://www.purebasic.fr/french/viewtopi ... 57&start=0
http://www.purebasic.fr/french/viewtopi ... 736#p87736

j'arrive à rien. Je suis une vraie bille :| pourtant je pense que tout est là

Voilà l'image.

Image

Elle fait 384x64 et les séquences sont en 64x64 donc 3 sprites pour marcher vers la droite et 3 pour marcher vers la gauche.

Pourriez vous me montrer un code commenté pour créer une animation avec cette planche ?
(le courage pour un nouveau tuto?)

Merci aux courageux.

Pour le moment j'ai juste fait le code qui affiche l'image globale et qu'on peut déplacer avec les flèches <- ->

Code : Tout sélectionner

InitSprite() : InitKeyboard()
UsePNGImageDecoder()

;fenêtre
Lfenetre=GetSystemMetrics_(#SM_CXSCREEN)  ; recup la resolution de l'ecran en cours
Hfenetre=GetSystemMetrics_(#SM_CYSCREEN)
If Lfenetre>800 And Hfenetre>400
  Lfenetre=800 : Hfenetre=400
EndIf
Lscreen=Lfenetre : Hscreen=Hfenetre-20
centre=Lscreen/2-LPalette/2 ; on trouve le centre de la fenetre

OpenWindow(0, #PB_Ignore, #PB_Ignore, Lfenetre, Hfenetre, "Window", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0, 0, Hfenetre-20, 100, 20, "Quitter")
OpenWindowedScreen(WindowID(0), 0, 0, Lscreen, Hscreen, 0, 0, 0)
 

Structure jojo
  PosX.l
  PosY.l
  BougeX.l
  BougeY.l
EndStructure
Global Dim jojo.jojo(1)

jojo(1)\PosX=0
jojo(1)\PosY=Hscreen-64 
jojo(1)\BougeX=10
jojo(1)\BougeY=-10

If LoadSprite(0,"img/je_marche_petit.png",0)
Else
  Debug "ça chie au chargement du sprite"
EndIf


;{- Event loop
Repeat
  FlipBuffers()
  ClearScreen(RGB(0, 0, 0))
  
  Event= WindowEvent ()
  Delay (2)
  ExamineKeyboard ()
  
  ;---AFFICHAGE----
  TransparentSpriteColor(0,$FF00FF)
  DisplayTransparentSprite(0,jojo(1)\PosX ,jojo(1)\PosY ) 
  
  
  If KeyboardPushed(#PB_Key_Left)
    jojo(1)\PosX=jojo(1)\PosX-10
    If jojo(1)\PosX<0
      jojo(1)\PosX=0
    EndIf
  EndIf 
  
  If KeyboardPushed(#PB_Key_Right)
    jojo(1)\PosX=jojo(1)\PosX+10
    If jojo(1)\PosX>Lscreen-64
      jojo(1)\PosX=Lscreen-64
    EndIf
  EndIf
  
  If KeyboardPushed(#PB_Key_Escape)
    Break 
  EndIf
  
  Repeat
    Event = WindowEvent()
    
    Select Event
      Case #PB_Event_Gadget
        If EventGadget() = 0
          End
        EndIf
        
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until Event = 0
  
ForEver
Dernière modification par Ar-S le mar. 26/janv./2010 19:21, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Animation de Sprite / Decoupe

Message par flaith »

J'avais posté un truc dans le genre ici : http://www.purebasic.fr/french/viewtopic.php?f=6&t=7049
si ca peut t'aider :wink:

(Mettre directx7 dans la bibliothèque sous-système)
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Animation de Sprite / Decoupe

Message par TazNormand »

Salut

l'utilisation de clipsprite ne serait elle pas judicieuse ???
Image
Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Animation de Sprite / Decoupe

Message par Backup »

.................
Dernière modification par Backup le dim. 20/mars/2011 14:45, modifié 1 fois.
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Re: Animation de Sprite / Decoupe

Message par Huitbit »

Hello !

Un petit exemle de plus :

http://www.purebasic.fr/french/viewtopi ... grabsprite

Si tu veux quelque chose de très complet, il y a :

http://www.games-creators.org/wiki/Pure ... r_un_RPG2D

(voir Etape n°5: Les sprites et les collisions )
(de Comtois)

Bonne continuation !
Elevé au MSX !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Animation de Sprite / Decoupe

Message par Ar-S »

Merci les potos,
Super Dobro, merci pour les explications !

Code : Tout sélectionner

le retour n'as pas l'animation de la marche !! :roll: :lol:
les 2 dernières images sont pareil !! 
Voilà ce que c'est que de dormir 3h dans la nuit et de se foutre à toshop après... désolé :D

Merci aussi huibit pour ton exemple, je suis passé à coté dans mes recherches, je vais le "favoriser" aussi.
Flaith, j'avais trouvé ton code mais je ne m'en sortait pas vraiment avec non plus.

Merci encore en tout cas
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Animation de Sprite / Decoupe

Message par Ar-S »

ClipSprite(0, x, 0, 64,128)
J'ai corrigé ma planche et ai mis les sprites en 150x150, ça marche bien.

sinon dans ton code, y'a une raison particulière pour que tu ais doublé la hauteur dans le ClipSprite ? (128) ou est-ce une bourde ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Animation de Sprite / Decoupe

Message par Backup »

Ar-S a écrit :sinon dans ton code, y'a une raison particulière pour que tu ais doublé la hauteur dans le ClipSprite ? (128) ou est-ce une bourde ?
non c'est une petite erreur de ma part
vu que tu n'avais pas precisé la taille de ton dessin
j'ai tâtonné , et j'ai laisser des que visuellement ça a marché
j'ai pas cherché a comprendre :D
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Animation de Sprite / Decoupe

Message par flaith »

Ar-S a écrit :...Flaith, j'avais trouvé ton code mais je ne m'en sortait pas vraiment avec non plus...
C'est vrai que c'est pas des plus simple, je vais mettre dans la rubrique jeux, mon code source du jeu 'sans envergure' dès ce soir, il utilise pas mal les clips :mrgreen:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Animation de Sprite / Decoupe

Message par Ar-S »

D'avance merci, plus y'a d'exemples, mieux c'est. :D

Je suis en train de reprendre mes dessins, je galère avec photoshop car il me laisse un contour rosé autour des sprites (pour adoucir) du coup lors de l'affichage pb c'est pas beau (contour rose ignoble).. je suis à la limite de reprendre à chaque fois chaque sprite pixel à pixel... doit y avoir une autre méthode.. A moins je ne parte sur une image 256 couleurs mais là je ne peux plus utiliser les calques..

Comment vous procédez vous ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Animation de Sprite / Decoupe

Message par djes »

Mouarf, alors, soit tu utilises les sprites 3d avec couche alpha (ce qui te permet d'éviter les contours foireux et te donne l'avantage des transparences), soit tu détoures, c'est à dire que tu enlèves le rose autour pour n'avoir qu'un bord propre, non transparent. J'espère que tu connais bien photoshop :)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Animation de Sprite / Decoupe

Message par Ar-S »

Ouai je connais (assez) bien photoshop, c'est justement le détourage qui est : Facile mais très chiant et très long...

Tite question. En sprite3D justement, si j'ai bien compris on peux utiliser une série d'images (png, tiff) transparente avec simplement le sprite dessus ?
genre : image1,2,3... comme ceci ?

Image

Si c'est le cas y'a même pas à chipoter et passer aux sprite 3D. De plus c'est plus facile de créer 5 images séparées que de gérer une planche ou copier/coller les images au pixel près (Pourquoi les sprites2D ne peuvent pas supporter l'alpha d'ailleurs ?)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Animation de Sprite / Decoupe

Message par djes »

A mon avis, les sprites 2D ne devraient plus être utilisés ; c'est une sorte d'héritage du passé, qui était valable du temps de DirectX7. C'est encore valable sur d'autres plateformes aussi.

Pour ta question : oui! Y'a pas à chipoter!!!

PS: j'ai oublié de dire que pour certains usages, les sprites 2D sont encore utiles, notamment les scrollings :)
Dernière modification par djes le mar. 26/janv./2010 16:59, modifié 1 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Animation de Sprite / Decoupe

Message par Ar-S »

Un truc me vient à l'esprit ?
Est-ce l'image alpha c'est ce que j'ai dit au dessus ou est-ce que c'est l'inverse de l'image (fond blanc avec intérieur du sprite noir comme avec les softs 3D ?)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Animation de Sprite / Decoupe

Message par djes »

Non, c'est bien ça, sous toshop tu enregistres ton image en png 32 ou en tiff 32. Dans les softs 3d tu peux aussi enregistrer ta couche alpha directement, c'est ce que je fais tout le temps et ça fonctionne très bien :)
Répondre