Vous êtes sur la page 1sur 3

TD n 1 Mon premier jeu : PyPong

Prambule

Universit de Nice Sophia Antipolis S. Lavirotte 2011-2012

Pour pouvoir programmer, il est ncessaire dinstaller les outils qui vont nous permettre de travailler. Nous devons tout dabord installer lenvironnement de dveloppement Python. Pour cela, installer sur votre ordinateur lenvironnement de programmation Python et la librairie PyGame : Python : http://kistren.polytech.unice.fr/cours/maje/td1/install/python-2.5.4.msi PyGame : http://kistren.polytech.unice.fr/cours/maje/td1/install/pygame-1.9.1.win32-py2.5.msi PyGame Doc: http://kistren.polytech.unice.fr/cours/maje/td1/install/pygameDocs.zip

Comme nous avons pu le voir en cours, nous allons maintenant tenter de raliser notre premier programme de jeu, ce qui nous permettra de dcouvrir les bases de la programmation et les techniques de base du jeu vido 2D. Notre premier jeu vido sera donc Pong prsent en cours. Pour dcouvrir les diffrentes tapes dlaboration dun jeu aussi basique que celui-ci, nous allons raliser plusieurs versions successives.

1 Un squelette de programme : version 0


1.1 Lanimation dune balle qui rebondit
Pour cette toute premire version, nous nous contenterons de grer lanimation dune balle qui rebondit sur les bords de la fentre. Cette premire tape va nous permettre de mettre en place le squelette de notre programme savoir : - LInitialisation du programme - Chargement des librairies - Initialisation de la fentre - Initialisation du jeu : cration de larrire plan, le terrain (rectangle) et de la balle (cercle) - Initialisation de lhorloge, des variables ncessaires - La mise en place de la boucle de traitement du jeu : - Gestion des vnements - Gestion du temps - Gestion du jeu (dplacement de la balle, gestion des rebonds) - Affichage (mise jour de la position de la balle)

1.2 Un jeu : une application multimdia avec du son


Ajouter votre application une dimension sonore en jouant un son chaque rebond de la balle sur un mur. Jouer un son diffrent dans le cas o la balle rebondit sur les murs ou sur la raquette. Vous pourrez aussi ajouter une musique dambiance votre application.

2 Programmation imprative structure : version 1


2.1 Une version avec 1 joueur humain : Mur dentrainement
Une premire amlioration du prototype obtenu prcdemment est dobtenir une version de squash, avec une seule raquette pilote par un joueur humain. On ajoutera pour cela : Initialisation du programme
Universit de Nice Sophia Antipolis PolytechNice Sophia 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

TD n 1 Mon premier jeu : PyPong


Cration du terrain : bordures, milieu de terrain

Universit de Nice Sophia Antipolis S. Lavirotte 2011-2012

Initialisation des diffrents paramtres du jeu : position de la raquette, de la balle, vitesse,

Boucle de traitement du jeu : - Gestion des vnements : touches haut et bas pour faire bouger la raquette du joueur - Gestion du temps - Gestion du jeu : dplacement de la balle, gestion des rebonds sur le terrain et les raquettes, - Affichage (mise jour de la position de la balle)

2.2 Une version deux joueurs humains : Tennis


Une premire extension du jeu va consister faire une version du jeu avec deux joueurs humains qui contrlent chacun une raquette. Dans cette nouvelle version, hormis lajout et la gestion dune deuxime raquette, on pensera grer le score de la partie. Complter le code obtenu par lajout des diffrents lments du jeu afin dobtenir une nouvelle version quivalente limage propose. - Initialisation du programme Initialisation des diffrents paramtres du jeu : position des raquettes, de la balle, vitesse, Cration du terrain : bordures, milieu de terrain Chargement de la police de caractre pour laffichage du score

font = pygame.font.Font("DS-DIGIB.TTF", 64)

Boucle de traitement du jeu : - Gestion des vnements : touches haut et bas pour faire bouger la raquette du joueur 1 et deux autres touches pour faire bouger la raquette du joueur 2 - Gestion du temps - Gestion du jeu : dplacement de la balle, gestion des rebonds sur le terrain et les raquettes, - Affichage (mise jour de la position de la balle)

2.3 Une version 1 joueur et une intelligence artificielle : Tennis


Modifier le programme prcdent pour ajouter un dplacement automatique de la raquette de lordinateur pour permettre de jouer un seul joueur.

3 Programmation imprative procdurale : PyPong version 2


Pour avoir un programme plus structur et plus lisible, vous regroupez les diffrents lments de votre programme dans des fonctions. La boucle de traitement sera ainsi beaucoup plus lisible. Attention aux passages de paramtres ncessaires, ce qui ncessitera de mieux structurer votre code. Nous raliserons par exemple cette nouvelle version du programme en dfinissant une fonction main ainsi que son appel pour quelle sexcute:
def main(): # Initialisation de la librarie PyGame et creation d'un fenetre pygame.init() if __name__ == '__main__': main()

Vous modifierez donc votre code pour regrouper dans des fonctions les diffrents lments de votre programme.
Universit de Nice Sophia Antipolis PolytechNice Sophia 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/

TD n 1 Mon premier jeu : PyPong


4 Programmation Objet : PyPong version 3

Universit de Nice Sophia Antipolis S. Lavirotte 2011-2012

Enfin pour terminer ces travaux dirigs, rcrire le programme avec lapproche objet. Les diffrents objets crer sont : Un objet raquette Un objet balle Un objet ordinateur pour la gestion de lintelligence artificielle

Chacun des objets aura une mthode dinitialisation et une mthode update qui permettra de mettre jour les paramtres de lobjet (nouvelle position des raquettes, des balles, ). Vous serez aussi srement amen ajouter dautres fonctions comme la dtection des collisions pour la balle ou bien encore le positionnement de la balle un emplacement alatoire aprs une victoire.

5 Evolutions : avoir des paramtres du jeu rglables


Modifier votre programme afin de pouvoir paramtrer les diffrents lments de votre jeu, comme par exemple : la taille du terrain, de la balle ou bien encore des raquettes. Suivant la manire dont vous avez programm, ces modifications seront plus ou moins aises. Mesurez le temps que vous mettez pour faire ces modifications et celui mis par un de vos collgues. La qualit dun programme dpend largement de la simplicit le faire voluer.

6 Dclinaisons diverses partir de cette base de jeu


Pour les plus rapides, partir des premires versions que vous avez obtenu ( savoir le mur dentrainement et le jeu de tennis ), vous pourrez mettre en place plusieurs dclinaisons : Pelote , Hockey , Football , Grille ,

Universit de Nice Sophia Antipolis PolytechNice Sophia 930, Route des Colles B.P. 145 - 06903 Sophia Antipolis Cedex France Tl : +33 (0)4 92 96 50 50 Fax : +33 (0)4 92 96 50 55 http://www.polytech.unice.fr/