1) Jeux qui ne nécessitent pas getkey() (jouables sur la Graph 35+E II, Graph 90+E et GRAPH MATH+)

Flappy Bird

Nous vous avons proposé pour la Paris Games Week de 2022 un atelier en ligne sur les jeux vidéos. Pour cet atelier spécial nous avons fait appel à deux professionnels des jeux vidéos sur calculatrices : Xavier Andréani (TI-Planet) et Sébastien Michelland (Planète Casio). Ils ont cherché un jeu connu et facile à jouer (une seule touche suffit).

Ils ont décidé de programmer le jeu Flappy Bird, bien connu de tous ! Il s’agit de faire voler un petit oiseau dans un environnement hostile où des tuyaux apparaissent en haut et en bas de l’écran.

Le principe étant bien évidemment d’éviter le plus de tuyaux possibles en utilisant la touche O. Le score donne à la fin le nombre de tuyaux évités. Xavier Andréani et Sébastien Michelland nous ont aussi partagé différentes ressources (ci-dessous) pour vous aider à comprendre les étapes clés de la construction d’un jeu vidéo avec différents exemples. Un grand merci à eux  deux pour ce formidable atelier qui, nous l’espérons, vous donnera de l’inspiration pour créer d’autres jeux !

Présentation complète en PDF avec des explications pour comprendre le code du jeu 👉PRESENTATION PDF

Replay de la formation en ligne avec toutes les explications et programmes intermédiaires à télécharger :

▶️00:00 Introduction

▶️06:20 Présentation du menu Python de la calculatrice : Vous verrez en particulier dans cette partie une présentation de la bibliothèque casioplot qui permet d’afficher un pixel à l’écran.

▶️11:25 Zone graphique de casioplot : Vous verrez ici comment identifier des pixels de l’écran avec leurs coordonnées sur les calculatrices CASIO. Vous pouvez télécharger les programmes intermédiaires utilisés dans la présentation, version monochrome pour Graph 35+E II : zone.py et version couleur pour la Graph 90+E : zone-1.py

▶️19:07 Format des couleurs sur casioplot : Dans cette partie, vous verrez comment coder les couleurs sur la calculatrice. Vous pouvez télécharger les programmes python de dégradé ici :  dnoir.py et dblanc.py (version monochrome) dnoir-1.py et dblanc-1.py. (version couleur).

▶️31:00 Extension de casioplot avec des rectangles pleins : Vous verrez ici comment construire la fonction draw_rect() qui permet de dessiner des rectangles pleins. Téléchargez ces programmes ici : drawrect.py (version monochrome) drawrect-1.py (version couleur).

▶️32:30 Plantons le décor avec des rectangles pleins : Ici vous verrez comment construire le décor (sol, tuyaux etc…) en utilisant des rectangles pleins. Vous pouvez télécharger les programmes ici : decor1.py (version monochrome) decor1-1.py (version couleur).

▶️34:50 Défilement horizontal du décor vers la gauche : Cette partie permet de voir commet faire défiler le décor vers la gauche d’abord avec un programme un peu lent : decor2.py (version monochrome) decor2-1.py (version couleur) puis dans une version optimisée où l’on redessine uniquement les pixels qui ont changé : decor3.py (version monochrome) decor3-1.py (version couleur).

▶️40:15 Dessin de Flappy Bird : Voici ici les explications pour dessiner l’oiseau à l’écran avec des chaînes de caractères où chaque caractère est associé à une couleur. Vous pouvez télécharger le programme ici : sprite.py (version monochrome) sprite-1.py (version couleur).

▶️43:40 Collision entre oiseau et tuyaux : Vous verrez ici comment tester si l’oiseau percute un tuyau ou non avec deux méthodes, voici les programmes à télécharger : interect.py (version monochrome) interect-1.py (version couleur).

▶️51:51 Du mouvement plan à la chute libre : Enfin cette dernière partie permet de comprendre comment coder le mouvement en chute libre de l’oiseau : mvplan.py (version monochrome) mvplan-1.py (version couleur).

Et enfin le programme complet à télécharger :🎮 flappy35.py 🎮(pour la Graph 35+E II) et🎮flappy90.py 🎮(pour la Graph 90+E et la Graph Math+).

Etiord

Voici un nouveau jeu proposé par Xavier Andréani.
Il s’agit ici de piloter une voiture afin de lui faire traverser les différents quartiers d’une ville : Etiord. Particularité dans cette ville, il est strictement interdit de tourner à gauche (c’est-à-dire de couper toute voie de circulation) et ce sur tout le territoire métropolitain.
Les seules possibilités sont donc d’aller tout droit ou bien de tourner à droite. Il suffit de taper la touche O pour prendre la prochaine rue à droite.
Le jeu enchaîne ici 6 quartiers pouvant être considérés comme autant de niveaux différents, voici le premier (entrée du quartier en bas à droite comme indiqué par la position de la voiture, sortie du quartier à atteindre en bas à gauche, et uniquement en tournant à droite donc). etiord jeu sur calculatrice CASIO
À l’entrée de chaque nouveau quartier, le jeu demande un nombre de voitures. Il faut alors entrer :
  • 0 pour quitter
  • un petit nombre (par exemple 1) si l’on joue sur calculatrice, afin que le jeu ne tourne pas trop lentement
  • un grand nombre (par exemple ici autour de 200) si l’on joue avec le simulateur sur clé USB, afin que le jeu ne tourne pas trop vite
Si l’on indique plusieurs voitures, seule la première voiture entrant dans le champ de vision de l’écran (voiture rouge) est contrôlable au clavier. Les autres voitures sont purement décoratives, tournent aléatoirement à droite quand elles veulent, et n’ont pas d’autre utilité que de permettre d’accélérer ou ralentir le jeu ; il n’y a notamment pas de gestion des collisions entre voitures.

Téléchargez le jeu ici 🎮 etiord.py 🎮

Gravity Guy

Voici une adaptation libre de Gravity Guy proposée par Sébastien Michelland. L’objectif est d’atteindre la fin de chaque écran en inversant Gravity Guy sur CASIOGraph 90+Ela gravité avec O pour sauter de plateforme en plateforme. Le jeu comporte 3 niveaux de difficulté croissante. Les mécaniques sont
programmées dans gg.py, tandis que le fichier auxiliaire gg_data.py est généré automatiquement à partir des images du jeu et maquettes des niveaux. Les fichiers originaux du jeu ainsi que le script de génération sont disponibles en ligne : https://gitea.planet-casio.com/Lephenixnoir/GravityGuyPython.

Téléchargez le jeu ici 🎮 gravity_guy.zip 🎮

2) Jeux qui utilisent getkey() (jouables uniquement sur la GRAPH MATH+)

Pour cette deuxième édition Xavier Andréani (TI-Planet) et Sébastien Michelland (Planète Casio) nous ont programmé un jeu en 3D ! Alors si vous voulez savoir comment construire un jeu en 3 dimensions ou encore comment utiliser getkey() sur la calculatrice vous êtes au bon endroit et nous vous souhaitons la bienvenue dans cette troisième dimension…Jeu Cubefield joué sur la calculatrice GRAPH MATH+

Présentation complète en PDF avec des explications pour comprendre le code du jeu 👉 Atelier Jeu Casio 2024

Replay de la formation en ligne avec toutes les explications et programmes intermédiaires à télécharger :

▶️00:00 Introduction

▶️09:18 L’application Python sur la Graph Math+ et en particulier getkey() : vous verrez en particulier dans cette partie comment fonctionne getkey() c’est à dire comment utiliser les touches de la calculatrice dans un programme en utilisant cette fonction et le code de chaque touche.

▶️18:40 Casioplot, principe d’affichage et fonctions graphiques : cette partie permet de comprendre comment fonctionne l’affichage de l’écran avec un fonctionnement en double buffering et de voir les fonctions de casioplot

▶️21:46 Casioplot et zone graphique : dans cette partie vous verrez comment identifier un pixel par ces coordonnées sur l’écran. 

▶️26:20 Casioplot et format des couleurs : vous verrez ici comment coder une couleur sur la calculatrice.

▶️30:36 Choix graphiques pour Cubefield : la calculatrice étant moins puissante qu’un ordinateur, certains choix seront ici faits pour que le jeu soit plus fluide.

▶️33:02 Extension de casioplot avec draw_line() et draw_polygon() : pour ce programme nous avons besoin de tracer des lignes et des polygones nous allons donc ajouter des fonctions à casioplot. Vous verrez ici plusieurs exemples plus ou moins optimisés. L’optimisation d’un programme prend tout son sens sur une calculatrice car ce n’est pas un objet très puissant. Cette partie permet de comprendre comment modifier un algorithme pour qu’il soit plus efficace.

▶️48:22 Mise en place d’une perspective 3D : dans cette partie vous verrez comment donner une impression de 3D en utilisant des projections dans une pyramide. Pour calculer ensuite les dimensions de chaque objet on utilisera un théorème bien connu de tous : le théorème de Thalès !

▶️58:13 Effet de profondeur par couleur : vous verrez dans cette partie comment donner un effet de profondeur en utilisant différents niveaux de gris aux objets en fonction de leur emplacement.

▶️1:00:54 Déplacements et rotation : il faut maintenant comprendre comment déplacer les carrés, c’est l’objet de cette partie.

▶️1:03:52 Simulation physique : dans cette partie vous verrez comment déplacer les objets et donner l’impression que l’observateur avance et voir s’il percute un carré ou non.

Téléchargez le jeu ainsi que tous les scripts intermédiaires présentés ici 🎮Scripts🎮