Comment Déplacer un Sprite sur Game Boy avec GBDK.
Salut à tous !
Bienvenue sur Studio40A. Aujourd’hui, je suis très heureux de partager avec vous un nouveau tutoriel sur la programmation de la Game Boy avec GBDK.
Nous allons apprendre à déplacer un sprite à l’écran en utilisant le joypad de la Game Boy. Si vous avez suivi notre dernier tuto, vous vous souvenez sûrement que nous avons affiché un sprite à l’écran.
Aujourd’hui, nous allons le faire bouger !
Introduction à GBDK
Pour ceux qui ne le savent pas encore, GBDK (Game Boy Development Kit) est un ensemble d’outils pour développer des jeux sur Game Boy. Il permet de programmer en C, un langage de programmation très populaire et puissant. Dans ce tutoriel, nous allons utiliser Visual Studio Code pour écrire notre code.
Déclaration des Variables
Commençons par les bases de la programmation : les variables. Les variables sont des conteneurs qui stockent des valeurs que nous pouvons modifier. Voici comment déclarer des variables en GBDK :
Copier le code :
UINT8 position_X;
UINT8 position_Y;
Ici,UINT8
signifie "unsigned integer 8-bit", ce qui permet de stocker des valeurs de 0 à 255. Nous avons déclaré deux variables :position_x
etposition_y
. note : dans la dernière version de GBDK la déclaration se fait avec uint8_t mais ça ne change rien.

Initialisation des Variables
Ensuite, nous allons initialiser ces variables avec les positions initiales du sprite :
CopieR le code : position_X = 80;
position_Y = 72;

Mise à Jour du Sprite
Pour mettre à jour la position du sprite, nous utilisons les variables position_x
et position_y
:
Remplacer la ligne move_sprite(0, 88, 78); par move_sprite(0, position_x, position_y);
note : dans la dernière version de GBDK la fonction vsync(); remplace la fonction wait_vbl_done(); devenue obsolète.
Boucle Principale du Jeu
La boucle principale du jeu va répéter continuellement les instructions qu’elle contient. Voici comment nous allons intégrer notre mise à jour de sprite dans cette boucle :
En dessous dewhile(1) {
ajouter les 3 lignes suivantes :
position_x++;
position_y++;
delay(100);
La ligne delay(100) permet de ralentir le programme, personnellement je ne m'en sers jamais dans mes jeux. Ici, c'est pour mieux voir le déplacement.Voici le résultat :

Utilisation du Joypad
Pour permettre au joueur de contrôler le sprite avec le joypad, nous allons ajouter des instructions pour chaque direction :
Tout d’abord, effacez les 3 lignes que nous avons insérées précédemment.
A la place, copier :
if (joy & J_UP) {
position_Y--;
}
if (joy & J_DOWN) {
position_Y++;
}
if (joy & J_LEFT) {
position_X--;
}
if (joy & J_RIGHT) {
position_X++;
}

Compilation et Test
Pour compiler et tester notre code, nous allons utiliser l’outil de compilation de GBDK (voir cet article). Une fois le code compilé, nous pouvons le charger sur notre Game Boy ou sur un émulateur pour voir le sprite se déplacer en réponse aux commandes du joypad.

Conclusion
Félicitations ! Vous avez appris à animer un sprite sur Game Boy en utilisant GBDK. Ce tutoriel couvre les bases, mais il y a encore beaucoup à explorer. N’hésitez pas à expérimenter et à ajouter plus de fonctionnalités à votre jeu. Si vous avez des questions ou des suggestions, laissez un commentaire ci-dessous.
N’oubliez pas de vous abonner à ma newsletter pour plus de tutoriels sur le développement de jeux vidéo.
À bientôt pour un nouveau tutoriel !