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
Texte légal : Source
La source des documents utilisés par la suite se trouve ici
Méthode : Installer la version spéciale de circuitPython 4 beta7
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.
double-cliquez sur le bouton reset de la carte afin de pouvoir installer circuitpython
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ément : Pour 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éthode : Hello 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éthode : Autres 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ément : Et 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.