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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Rotatiion d'un sprite

Message par falsam »

Mise à jour.
- Ajout créer et dessiner dans un sprite.
- Ajout rotation d'un sprite.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

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

Message 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 ?
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

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

Message 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:





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

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

Message 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
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

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

Message 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 ;).
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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:
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

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

Message 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






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

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

Message par Micoute »

Merci falsam pour tous ces partages que tu fais et qui m'apportent beaucoup.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

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

Message 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 ?






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

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

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Bernie
Messages : 282
Inscription : mar. 22/mars/2016 10:12
Localisation : En France

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

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