Installer des jeux Python

Nous avons vu lors du montage comment mettre des jeux programmés par blocs avec makecode arcade. Vous bénéficiez déjà de plusieurs jeux que vous pouvez tester dès maintenant sur votre console. Nous avons vu sur la page précédente la procédure pour installer ces jeux sur la console.

Ce qui va nous intéresser dans cette page, c'est comment faire en sorte de réaliser la même chose en python. Les choses ne sont pas si simples que sur ordinateur. De base, circuitPython est conçu pour piloter des actionneurs et recevoir des informations de capteurs. La gestion optimisée de l'écran pour faire des animations fluides nécessite un peu de travail.

C'est en décortiquant le projet μgame, et avec l'aide de son développeur (Radomir Dopieralski) que j'ai réussi à faire fonctionner les jeux de ce projet sur la carte itsyBitsy M4 (la M0 est un peu juste en mémoire). Pour que cela fonctionne, il faut la toute dernière version de circuitPython (4.0 beta7 à l'heure ou j'écris ces lignes) qu'il faut recompiler avec des options particulières pour activer le support du module stage que nous allons utiliser. Pas de panique, je vous mettrai en ligne le firmware prêt à l'emploi pour la itsyBitsy M4. La procédure est donc simple

MéthodeInstaller la version spéciale de circuitPython 4 beta7

  1. télécharger mon firmware modifié [zip] incluant les options et librairies nécessaires. Si vous récupérez circuitpython depuis le site officiel, ce tutoriel ne fonctionnera pas car il faut activer des options à la compilation.

  2. double-cliquez sur le bouton reset de la carte afin de pouvoir installer circuitpython

  3. copiez itsybitsy_m4_express_stage_frozen.uf2 dans le disque ARCA-D51. La carte redémarre.

Tout est prêt, vous pouvez tester vos jeux.

ComplémentPour information - optionnel

Si vous voulez recompiler le firmware vous même, vous devrez

  • disposer de l'environnement de développement adéquat pour compiler circuitpython

  • dans le fichier circuitpython/ports/atmel-samd/boards/itsybitsy_m4_express/mpconfigboard.mk, ajouter les deux lignes suivantes

CIRCUITPY_STAGE = 1

FROZEN_MPY_DIRS += $(TOP)/frozen/circuitpython-stage

  • dans le dossier circuitpython/frozen/circuitpython-stage, déposer les fichiers stage.py et ugame.py que vous trouverez dans cette archive [zip].

  • aller dans le dossier circuitpython/ports/atmel-samd puis lancer la compilation

make BOARD=itsybitsy_m4_express

Je ne détaille pas davantage ces procédures, plutôt réservées aux spécialistes

MéthodeHello world ! ! !

C'est le moment de tester si votre console est prête à accueillir vos jeux développés en python. Voici un programme de test. Dans l'archive en téléchargement [zip] se trouvent deux fichiers :

  • main.py : le programme principal lancé au démarrage de la carte

  • ball.bmp : fichier graphique contenant les sprites

Pour lancer la démo,

  • brancher la carte sur l'ordinateur. Un disque CIRCUITPY doit apparaître

Copiez les deux fichiers main.py et ball.bmp sur le disque CIRCUIT.PY

la carte redémarre en lançant a démo. Si ce n'est pas le cas, vous pouvez appuyer une fois sur le bouton reset. Voici ce que vous devriez obtenir.

MéthodeAutres jeux

Le github https://github.com/python-ugame propose deux autres jeux qui peuvent servir d'exemples pour développer les vôtres.

Pour les installer, suivez simplement la procédure de l'exemple ci-dessus.

Jumper [zip], jeu de plateforme.

vacuum-invaders [zip], clone de space invaders.

ComplémentEt le son ?

Il est possible d'avoir du son mais je suis à la recherche du petit haut-parleur parfait qui se logerait sous l'écran. Il suffit de le connecter entre A0 et GND de la carte. Sur D2, on peut ajouter un interrupteur pour activer ou désactiver le son.

Maintenant, à vous de jouer. L'objectif de ce projet est de créer sa propre plate-forme pour développer ses propres jeux. N'hésitez pas à les partager ! Nous allons voir d'un peu plus près dans la page suivante comment fonctionne le module stage.