Page 1 sur 3

[2D] Sprites Exercices. (Niveau débutant)

Publié : dim. 27/mars/2016 14:23
par falsam
Le minimum pour vous débrouiller avec les sprites 2D à travers quelques exercices très simples.

Qu'est ce qu'un sprite.
- Un sprite est dans un jeu vidéo un élément graphique qui peut se déplacer sur l'écran.

- Quand on affiche ou déplace un sprite, le point x et y représente le coin haut gauche du sprite.

Image

- Les sprites s'affiche et/ou se déplace dans un espace en deux dimensions.
  L'axe des x représente le déplacement vertical d'un sprite. le point le plus haut est en position 0.
  L'axe des y représente le déplacement horizontal d'un sprite. Le point le plus à gauche est en position 0.

- Les sprites exerce une rotation autour d'un point d'ancrage situé en leur centre.

Image

Sept exercices simples pour vous familiariser avec l'affichage et le déplacement de sprites. Ces exercices sont hébergés sur la plateforme collaborative GitHub.

:arrow: https://github.com/pbcodex/2D-Tutoriels ... master.zip

     01 - Afficher un sprite.
     02 - Déplacer un sprite.
     03 - Exercice de tir.
     04 - Dessiner dans un sprite.
     05 - Rotation d'un sprite.
     06 - On nous attaque.
     07 - Style Space Invaders.

Consulter l'aide pour le détail des fonctionnalités qui sont utilisées dans les exemples.

Rotatiion d'un sprite

Publié : dim. 27/mars/2016 15:44
par falsam
Mise à jour.
- Ajout créer et dessiner dans un sprite.
- Ajout rotation d'un sprite.

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : dim. 27/mars/2016 17:16
par Bernie
Merci Falsam je t'adore

dis moi tu mets initSprite() et initKeyboard() aprés les constantes et les variables globales
c'est pas au début du programme que l'on les mets plutôt ?

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : dim. 27/mars/2016 17:58
par venom
Bernie a écrit :Merci Falsam je t'adore

dis moi tu mets initSprite() et initKeyboard() aprés les constantes et les variables globales
c'est pas au début du programme que l'on les mets plutôt ?
Ça n'est pas trop gênant

Merci falsam :wink:





@++

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : dim. 27/mars/2016 18:08
par Bernie
j'aimerai bien qu'on explique ce code :
la gestion des ennemis , les collisions et la gestion du score et de la vie

http://www.purebasic.fr/french/viewtopi ... 72#p181872

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : dim. 27/mars/2016 18:57
par falsam
Bernie a écrit :dis moi tu mets initSprite() et initKeyboard() aprés les constantes et les variables globales
c'est pas au début du programme que l'on les mets plutôt ?
Comme l'a signalé Venom ce n'est pas génant.

Pas de commentaire sur la façon de coder. Un sujet existe http://www.purebasic.fr/french/viewtopic.php?f=1&t=8982
Bernie a écrit :j'aimerai bien qu'on explique ce code : la gestion des ennemis , les collisions et la gestion du score et de la vie
Si tu suis scrupuleusement chaque exemple, de ce sujet alors tu dois savoir faire.

Si tu as un souci sur un autre code, fais le dans un sujet différent de celui là s'il te plait.

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 8:12
par blendman
Salut

Juste une petite remarque en passant, pour les débutants ou les autres.
Si votre programme est destiné à être diffusé, vous devrez toujours vérifier chaque fonction dont une vérification est disponible.

Donc, au lieu de mettre :

Code : Tout sélectionner

InitSprite(), InitKeyboard(), OpenWindow(), StartDrawing(), ExamineKeyboard(), CreateImage(), LoadSprite(),etc...
Vous devrez mettre :

Code : Tout sélectionner

If InitSprite() = 0
     MessageRequester("Erreur",Iimpossible d'initialiser l'écran et les sprites")
     end
Endif

etc....
Bon, dans les exemples de Falsam, le code doit être court, et tout , mais dans un programme ou un code distribué, c'est vraiment important pour éviter les plantages du programme ;).

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 10:31
par Micoute
Bonjour à tous,

à la ligne 76, on trouve l'instruction suivante : If KeyboardPushed(#PB_Key_Left) And ShipX > SpriteWidth(Ship), je pense plutôt qu'il faudrait : If KeyboardPushed(#PB_Key_Left) And ShipX > 0, sinon le sprite ne va pas complètement à gauche.

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 10:34
par falsam
SPH a écrit :Quand on tire une rafale a coté de dobro... oops, de l'alien je veux dire, bin : il disparait 8)
L'alien ayant 5 vies son espérance de survie est courte :wink:
blendman a écrit :dans les exemples de Falsam, le code doit être court, et tout
Tout à fait Blendman. Juste l'essentiel pour commencer. A ce stade on ne pense pas à distribuer son jeu. Mais tu as raison il vaut mieux prendre l'habitude de tester l'initialisation de l'environnement 2D.
Micoute a écrit :à la ligne 76, on trouve l'instruction suivante : If KeyboardPushed(#PB_Key_Left) And ShipX > SpriteWidth(Ship), je pense plutôt qu'il faudrait : If KeyboardPushed(#PB_Key_Left) And ShipX > 0, sinon le sprite ne va pas complètement à gauche.
Tu as raison. Les codes sont mis à jour. :wink:

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 10:39
par venom
Par contre chez moi si je change KeyboardPushed par À et Z
Et bien sa ne bouge plus. J'ai sa avec certaines lettre. 8O

D'ailleurs l'IDE qui habituellement propose des choses quand on commence à taper une fonction n'affiche pas quand je tape#PB_Key_A ou #PB_Key_Z






@++

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 10:52
par falsam
venom a écrit :Par contre chez moi si je change KeyboardPushed par À et Z
Et bien sa ne bouge plus. J'ai sa avec certaines lettre.
Juste avant le premier Repeat tu places

Code : Tout sélectionner

KeyboardMode(#PB_Keyboard_International)

Code : Tout sélectionner

Enumeration Window
  #MainForm
EndEnumeration

InitSprite() 
InitKeyboard()

OpenWindow(#MainForm, 0, 0, 800, 600, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#MainForm), 0, 0, 800, 600)

KeyboardMode(#PB_Keyboard_International)

Repeat  
  Repeat
    Event = WindowEvent()
    
    Select Event    
      Case #PB_Event_CloseWindow
        End
    EndSelect  
  Until Event=0
  
  ClearScreen(RGB(0, 0, 0)) 
  
  ExamineKeyboard()
  
  If KeyboardReleased(#PB_Key_A)  
    Debug "Touche A"
  EndIf
  
  If KeyboardReleased(#PB_Key_Z)  
    Debug "Touche Z"
  EndIf
  
  FlipBuffers()
  
Until KeyboardPushed(#PB_Key_Escape)

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 10:59
par Micoute
Merci falsam pour tous ces partages que tu fais et qui m'apportent beaucoup.

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 12:33
par venom
Ah merci falsam je n'avais jamais fait attention à cette fonction.
Du coup mon A était vue comme un Q c'est ça ?






@++

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 17:01
par falsam
venom a écrit :Du coup mon A était vue comme un Q c'est ça ?
Exactement. Sans l'option KeyboardMode(#PB_Keyboard_International) le clavier est vu comme un clavier QWERTY

Re: [2D] Sprites Exercices. (Niveau débutant)

Publié : lun. 28/mars/2016 17:16
par Bernie
Bonsoir falsam
est ce que c'est possible un nouveau cours comme faire bouger un ennemi en le faisant tirer sur le joueur par exemple?

merci encore de ton aide