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.
- 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.
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.
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
@++
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

L'alien ayant 5 vies son espérance de survie est courte
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.

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.
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
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