projet Pygame
Prérequis:
- Cours sur l’IHM: Lien
Escape Game en langage python-pygame
Script initial
Un Escape Game est un jeu vidéo où il est question de s’échapper d’une pièce dans laquelle un joueur est enfermé. Pour cela, il fallait découvrir des éléments cachés dans le décor afin de trouver une clé qui permettrait au joueur de s’échapper de la pièce.
Vous allez créer votre jeu à l’aide du module Pygame, en langage python.
Voici un exemple de ce qu’il est possile de réaliser:
Les images qui servent à l’exemple sont à télécharger depuis le dossier source.
Nous partirons du script initial suivant:
Ajouter d’autres objets
Vous pouvez aussi laisser cours à votre imagination, et dessiner vos propres images.
Par exemple, si vous voulez ajouter une clé, voici l’image en format png (transparence du fond):
Ajouter alors les instructions pour créer une surface et reduire sa taille (ZONE 1)
Pour créer un calque sur l’objet:
Pour afficher l’image:
Conseils pour votre projet de TP
Architecture recommandée pour votre escape game
Votre jeu devrait comporter ces éléments :
- Image de fond : Un décor de salle (chambre, bureau, etc.)
- Objets interactifs : Zones cliquables sur l’image (porte, livres, tableau, bouton de la télévision, etc.)
- Zone de texte : Affichage des descriptions et dialogues en bas de l’écran
- Touches de commande ou clic sur un objet : Actions possibles (examiner, utiliser, inventaire, obtenir de l’aide, etc.)
- Système d’état : Gérer ce qui a été fait ou trouvé: utiliser un dictionnaire pour chacun des objets (voir plus bas). Et modifier, lorsque l’on clique sur l’objet, les variables d’état de l’objet. Par exemple:
cle["ramasse"] = True, oucle["visible"] = False(voir plus bas)
Conseils de programmation
Organisez votre code avec des fonctions
Utilisez des dictionnaires pour vos objets.
Vous limiterez ainsi l’emploi de trop nombreuses variables:
Définir un scénario à l’aide de diagrammes
Dans les zones 1 et 2, placer les variables utiles au jeu. Placer les différents textes à afficher.
Dans la zone 3, prevoir les interactions avec les différents objets, ainsi que la modification des variables:
Prévoir diagramme par objet ou par touche appuyée
Dans la zone 5, prévoir l’affichage du texte, ou le nouveau placement des objets/images.
Si vous utilisez un dictionnaire vous pouvez remplacer les variables L, P, M par exemple par lampe["actionner"] = True/False, porte["verouille"] = True/False, et miroir["regarder"] = True/False. Ce qui presente l’avantage d’être plus clair.
Questions à se poser avant de commencer le TP
- Quel est le scénario de mon escape game ?
- Quels objets ou quelles zones de l’image seront cliquables ?
- Quelles actions le joueur pourra-t-il faire ?
- Comment savoir si le joueur a gagné ?
- De quelles images ai-je besoin ?
Bon courage pour votre projet ! 🎮
Ressources utiles
- Documentation officielle Pygame : https://www.pygame.org/docs/
- Tutoriels vidéo : recherchez “Pygame tutorial” sur YouTube
- Exemples de code : https://github.com/pygame/pygame/tree/main/examples
- Chargement des images, format et transparence: https://zestedesavoir.com