Aujourd’hui nous allons afficher des méta sprites sur Game Boy avec GBDK.
Si vous avez manqué l’article précédent, sur « Comment Afficher des Sprites sur Game Boy« , je vous encourage vivement à le lire avant de vous lancer dans ce tuto afin de bien comprendre les bases de l’affichage sur Game Boy.
Reprise de notre Projet Game Boy
Lors de notre dernière vidéo, nous avons laissé notre projet à un point où un petit sprite se déplaçait à l’écran. Vous vous souvenez sûrement de ce petit sprite de 8×8 pixels.
Bien que pratique, ce format est un peu petit pour certains jeux. Aujourd’hui, nous allons aborder les meta-sprites, qui permettent de créer des sprites plus grands en combinant plusieurs sprites 8×8.
Création de Meta-Sprites
Pour illustrer cela, prenons l’exemple du sprite utilisé dans un jeu que j’ai réalisé pour une Game Jam. Dans ce jeu, le personnage principal et ses ennemis sont des meta-sprites.
Un meta-sprite est simplement une combinaison de plusieurs sprites individuels pour former une image plus grande et plus détaillée.
Étapes pour Créer un Meta-Sprite :
- Conception dans Game Boy Tile Designer :
- Ouvrez Game Boy Tile Designer.
- Définissez la taille de la tuile sur 16×16 pixels.
- Dessinez votre sprite (par exemple, un personnage de type « Coucou »).
- Repassez en taille 8×8 pixels pour voir comment les tuiles sont organisées dans la mémoire vidéo de la Game Boy.
- Exportez les tuiles en veillant à ce qu’elles soient correctement alignées.
Codage avec GBDK :
- Chargez les tuiles dans votre projet.
- Modifiez la ligne set_sprite_data(0,40,sprite); cette ligne permet de charger 40 tuiles dans la VRAM.
- Utilisez le code suivant pour assembler les tuiles en un meta-sprite :
- Remplacez la ligne set_sprite_data(0,0); par les 4 lignes ci-dessous :
set_sprite_tile(0, 4);
set_sprite_tile(1, 6);
set_sprite_tile(2, 5);
set_sprite_tile(3, 7);
- Dans la boucle while(1) remplacez la ligne move_sprite par les quatres lignes suivantes :
- move_sprite(0, position_X, position_Y);
- move_sprite(1, position_X + 8, position_Y);
- move_sprite(2, position_X, position_Y + 8);
- move_sprite(3, position_X + 8, position_Y + 8);
Il ne reste plus qu’à compiler et à admirer le résutat :
Limitations
- La Game Boy, en tant que console rétro à des limitations techniques. Parmis elles :
- Vous ne pouvez pas afficher plus de 10 sprites par ligne. Le 11ème sprite ne sera pas visible.
- Vous ne pouvez pas afficher plus de 40 sprites à l’écran en même temps.
Pour éviter ces limitations, il est essentiel de bien planifier l’utilisation de vos sprites et de regrouper intelligemment les tuiles.
Conclusion
J’espère que ce tutoriel vous a aidé à comprendre comment créer et utiliser des meta-sprites pour vos projets Game Boy avec GBDK. N’hésitez pas à laisser un commentaire si vous avez des questions ou des points que vous aimeriez voir approfondis dans les prochains articles. Abonnez-vous à la newsletter ci-dessous et continuez à coder avec passion!