Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
31 juillet 2023 1 31 /07 /juillet /2023 09:58

Pour la version 100% pygame: https://www.townground.com/2023/10/jeu-retro-pong-squash-version-100-pygame.html avec sons pour la balle (sons de jeu) et son playback d'arrière-jeu (background music), musique d'arrière-fond commutable On/Off...

   Et maintenant la version Squash 24.0 avec son. C'est en interrogeant Bard de Google que je me suis trouvé face à un choix pour le son: soit utiliser un code lourd et peu productif sous tkinter soit ajouter à la facilité de contrôle GUI de tkinter (objets boutons, usages divers du canevas, etc.) la facilité de jouer des sons dans un jeu via le module pygame.

   La majorité du jeu continue donc de fonctionner grâce au module Tkinter, seul le son étant pris en charge par une commande que par ailleurs je connaissais déjà (elle est présentée dans le livre de démarrage du Raspberry Pi 4 / 400) tirée elle du module Pygame.

   L'installation de ce module sur Windows (et Mac) se fait facilement via l'interpréteur et EDI / IDE / EDLI / IDLE Thonny Python au menu "outils" --> "gérer les paquets" où il suffira alors d'entrer "pygame" dans la barre de recherche puis de cliquer dessus et de cliquer sur "installer". Pour Visual Studio Code là... «cerca trova»!

   En fait pour Visual Studio Code, à partir d'un terminal il suffit d'entrer la ligne de commande suivante: pip install pygame . Je ne sais pas si cette commande fonctionne également dans le terminal Thonny Python, mais pour VS Code elle est très utile...

   À noter que sous le Linux Raspberry Pi OS (32 et 64 bits), anciennement en tout cas, ce module était déjà installé avec Python.

   Bref, si vous savez installer pygame voici le dossier ZIP contenant le code source Python 3.10 de squash_24-0.py et les deux fichiers sonores au format WAV, l'un "touche.wav" pour quand la balle touche les murs ou la raquette, l'autre "coule.wav" pour quand la balle tombe hors de la raquette. Pas de sons d'accompagnement en continu du jeu; ça distrait trop!

Dossier Squash_24-0.zip

Jeu de Pong Squash à angles variables sous Python 3 et tkinter

Démo du jeu...

   Voici la dernière version améliorée de mon jeu de Pong-Squash version 23-4 du 31 Juillet 2023 (31/07/2023). L'amélioration consiste en ce que l'angle de la balle n'est plus systématiquement de 45 degrés mais varie pour chaque nouvelle balle de jeu au hasard entre 30 et 60 degrés. La raquette, afin d'éviter les risques de symétries, part donc systématiquement d'environ le premier quart gauche de l'écran de jeu.

   C'est en fait plus compliqué à jouer car j'ai défini non une longueur de vecteur de balle fixe mais seulement sa composante y (verticale) fixe telle que y=5. Elle met cette balle toujours donc le même temps pour monter jusqu'en haut et redescendre. Mais elle sera tantôt plus lente tantôt plus rapide car la composante horizontale du vecteur est elle variable et est calculée en faisant x=5*cotg(angle) soit x=5/tg(angle).

   Résultat la longueur (force) du vecteur de la balle est variable elle aussi.

   Ce programme a été testé et fonctionne sous Linux (Raspberry Pi 4 / 400) et sous Windows de XP à 10 inclus. Néanmoins pour le faire fonctionner sous Windows 10 et haut-dessus (11) il ne faut pas se contenter d'utiliser l'interpréteur Python fourni dans le Windows Store! En effet, le fichier score ("Squash4_sco") doit pouvoir être écrit or cet interpréteur se place dans son propre répertoire lorsqu'il exécute un programme Python, un répertoire non inscriptible. Il faut donc passer par un éditeur Python 3, que ce soient Thonny-Python ou Visual Studio Code pour lancer ce programme et pouvoir profiter de l'enregistrement des scores.

   Par ailleurs pour tout programme Python non téléchargé sur un GitHub vérifié mais téléchargé via le site d'un particulier, comme c'est le cas ici, mieux vaut passer par un éditeur Python que par l'interpréteur directement: ça permet de vérifier s'il ne contient pas du code malveillant ou qui n'a rien à faire là (comme par exemple un appel de site via numéro d'IP ou via nom de domaine).

   Bref voici son code source en Python 3 format UTF-8:

squash_23-4.py code source Python 3 en texte UTF-8

Partager cet article
Repost0

commentaires

Présentation

  • : Town Ground anc. Igor Gorovitch
  • : Créations électroniques d'un dissident du numérique bien intégré. Musique style 90's et (un peu) programmation style années 1980 (80's). Les eighties et nineties au cœur.
  • Contact

Recherche

Pages