« Pygame/Concevoir des jeux avec Pygame » : différence entre les versions
Contenu supprimé Contenu ajouté
Ligne 1 :
==Introduction==
Tout le code de ce tutoriel est utilisé dans ''TomPong'', un jeu que j'ai écrit. A la fin de ce tutoriel, vous devriez non seulement renforcer votre compréhension de Pygame, mais vous devriez aussi comprendre comment TomPong fonctionne, et comment concevoir votre propre version.
Ligne 9 :
Une méthode commune d'organisation du code d'un jeu est de le diviser en six parties distinctes :
* '''Le chargement des modules qui sont utilisés dans le jeu
Tous les modules standards, excepté les importations locales des espaces de nommage de Pygame et le module Pygame lui-même. * '''Les classes de base du jeu'''
La définition des classes gérant les ressources de base, que sont le chargement des images et des sons, ainsi que les procédures de connexion/déconnexion au réseau, le chargement des sauvegardes de jeu, et toutes les autres ressources que vous pouvez utiliser dans votre jeu.
* '''Les classes des objets du jeu''' Cette partie devra contenir les définitions de classes pour les objets de votre jeu. Dans l'example de Pong, ce sera un objet pour la raquette du joueur (que vous pouvez initialiser plusieurs fois, une pour chaque joueur dans le jeu), et une pour la balle (laquelle peut aussi avoir de multiples instances). Si vous souhaitez avoir un menu sympa pour votre jeu, c'est aussi une bonne idée de faire une classe pour le menu. * '''Toutes les autres fonctions du jeu'''
* L'initialisation du jeu, incluant les objets Pygame eux-mêmes, le fond, les objets du jeu (initialisation des instances de classe) et les autres petits morceaux de code que vous pourriez vouloir ajouter.▼
* '''L'initialisation du jeu'''
* La boucle principale, dans laquelle vous placerez la gestion des intrées (c'est à dire l'acquisition des évènements utilisateurs que sont les frappes de clavier/bouton de souris), le code de mise à jour des objets du jeu, et finalement la mise à jour de l'écran.▼
▲
* '''La boucle principale'''
▲
Chaque jeu que vous ferez aura certaines seulement, ou la totalité de ces sections, avec vos propres ajouts de sections. Dans le cadre de ce tutoriel, je parlerai de la façon dont TomPong est agencé, et de la façon d'appliquer cette organisation à chaque projet de jeu que vous pourriez avoir.
▲Chaque jeu que vous ferez aura certaines ou toutes ces sections, avec celles que vous aurez ajouté en plus. Dans le cadre de ce tutoriel, je parlerai de la façon dont TomPong est agencé, et de mon idée de la façon de l'appliquer à n'importe quelle jeu que vous pourriez faire.Je supposerai également que vous voudrez garder tout le code dans un seul fichier, mais si vous faites un jeu raisonnablement conséquent en taille de code, c'est souvent une bonne idée de séparer le jeu en fichiers de modules.
Mettre les classes des objets du jeu dans un fichier ''objects.py'' par exemple, peut vous aider à séparer la programmation du jeu en lui-même des objets. Si vous avez un code de gestion des ressources, il peut également être pratique de le mettre dans ''resources.py''. Vous pourrez alors écrire ''from objects, resources import *'' pour importer toutes les classes et les fonctions.
===Une remarque sur le style d'écriture===
La première chose à laquelle il faut penser, en
player1.score += scoreup # Add scoreup to player1 score
Ce n'est pas très grave, mais un peu inutile.
Le code le plus horrible est mal agencé, avec des changements aléatoires dans le style d'écriture, et une maigre documentation. Le pire code n'est pas seulement ennuyeux pur les autres gens, mais il est également difficile à maintenir pour vous.
|