PACMAN

.

Objectif du tutoriel :

C’est obtenir une application qui utilise:

  • Une fenêtre.
  • Un canevas.
  • Créer des graphiques, du texte, des composants graphiques.
  • Créer des modules : image,fenetre et tableau. Pour introduire les boucles, les listes, les booléens et rendre le profil du jeu de façon originale.
  • fenetre.py est un module qui gère les fenêtres : nettoyage, construction..
  • tableau.py est un module qui permet de stocker des données en utilisant les boucles et les listes.
  • image.py est un module qui permet de stocker des images en utilisant les boucles et les listes.

Cette application va se faire en plusieurs étapes

Voici la première étape

html5 video support by EasyHtml5Video.com v3.9.1

Voici la deuxième étape

Chacun d'entre vous doit faire une version personnelle de cette application

html5 video test by EasyHtml5Video.com v3.9.1

Voici la troisième étape

Chacun d'entre vous doit faire une création numérique originale

html5 video test by EasyHtml5Video.com v3.9.1
pacman dans un Canevas :
_images/image119.png
_images/pacman001.png

.

Module fenetre :
programme Résultat
#fenetre.py #module de construction de fenetres #et de nettoyage de la fenetre from tkinter import * def creer_fenetre ( fenetre , titre , taille ): "modifie une fenêtre" fenetre.title ( titre ) fenetre.geometry ( taille ) return fenetre def nettoie_fenetre ( fenetre , can , liste_widgets ): can.delete( ALL ) for w in liste_widgets : w.destroy () return fenetre , can # redimensionne la fenetre fenetre.geometry(taille) # affiche le titre dans la fenetre fenetre.title(titre)
# redimensionne la fenetre fenetre.geometry(taille) # affiche le titre dans la fenetre fenetre.title(titre)

Le deplacement :
Pour des informations sur les arcs cliquez ici
Déplacement n°1
#deplacement pacman1.py from tkinter import * from fenetre import * def avancer ( b1,b2,objet ): #procédure d'avancement""" global x1,y1,x2,y2,largeur,hauteur futurx,futury = x2 + b1,y2 + b2 if futurx > largeur - distance or futurx < distance : b1 =- b1 futurx = b1 + x2 if futury > hauteur - distance or futury < distance : b2 =- b2 futury = b2 + y2 x2,y2 = futurx,futury can.move ( objet [ 0 ], b1,b2 ) can.move ( objet [ 1 ], b1,b2 ) def touche ( event,distance,objet ): """code reçoit le n° de la touche""" code = event.keycode if code == 38 : # Up avancer ( 0 ,- distance,objet ) elif code == 40 : # Down avancer ( 0,distance,objet ) elif code == 37 : #Left avancer (- distance,0,objet ) elif code == 39 : #Right avancer ( distance,0,objet ) #----------variables--------------# largeur,hauteur = 640,640 x1,y1 = 40,40 x2,y2 = x1,y1 distance = 10 titre = "Déplacement Pacman" taille = str ( largeur )+ "x" + str ( hauteur ) #------ Programme principal -------# fenetre = Tk () fenetre = creer_fenetre ( fenetre,titre,taille ) regle = " Appuyer sur les flèches du clavier pour faire bouger Pacman " texte0 = Label ( fenetre,text = regle,font = "arial 16 bold",fg = "blue",bg = 'white' ) can = Canvas ( fenetre,bg = 'light blue',width = largeur,height = hauteur - 30 ) objet1 = can.create_arc ( 5,5,40,40,fill = "yellow",outline = "black",start = 25,extent = 305 ) objet2 = can.create_oval ( 27,12,30,16,fill = "black",outline = "black" ) objet =[ objet1,objet2 ] can.grid ( row = 1,column = 0,columnspan = 2 ) texte0.grid ( row = 0,column = 0,columnspan = 2 ) fenetre.bind_all ( '<Key>',lambda event : touche ( event,distance,objet )) fenetre.mainloop ()
_images/pacimg1.PNG
Configurer le pacman :

On vas modifier le code du pacman pour qu’il se retourne , et se mette à manger en se déplaçant.

html5 player by EasyHtml5Video.com v3.9.1

Pour avoir des informations complémentaires sur la configuration des items cliquez

Déplacement
#deplacement pacman1.py from tkinter import * from fenetre import * def avancer(b1,b2,objet ): #procédure d'avancement""" global x1,y1,x2,y2,largeur,hauteur futurx,futury = x2 + b1,y2 + b2 if futurx > largeur - distance or futurx < distance : b1 =- b1 futurx = b1 + x2 if futury > hauteur - distance or futury < distance : b2 =- b2 futury = b2 + y2 x2,y2 = futurx,futury can.move(objet [ 0 ], b1,b2 ) can.move(objet [ 1 ], b1,b2 ) def touche(event,distance,objet ): #code reçoit le n° de la touche code = event.keycode if code == 38 : # Up avancer(0 ,- distance,objet ) elif code == 40 : # Down avancer(0,distance,objet ) elif code == 37 : #Left avancer (- distance,0,objet ) elif code == 39 : #Right avancer(distance,0,objet ) #----------variables--------------# largeur,hauteur = 640,640 x1,y1 = 40,40 x2,y2 = x1,y1 distance = 10 titre = "Déplacement Pacman" taille = str(largeur )+ "x" + str(hauteur ) #------ Programme principal -------# fenetre = Tk() fenetre = creer_fenetre(fenetre,titre,taille ) regle = " Appuyer sur les flèches du clavier pour faire bouger Pacman " texte0 = Label(fenetre,text = regle,font = "arial 16 bold",fg = "blue",bg = 'white' ) can = Canvas(fenetre,bg = 'light blue',width = largeur,height = hauteur - 30 ) objet1 = can.create_arc(5,5,40,40,fill = "yellow",outline = "black",start = 25,extent = 305 ) objet2 = can.create_oval(27,12,30,16,fill = "black",outline = "black" ) objet =[ objet1,objet2 ] can.grid(row = 1,column = 0,columnspan = 2 ) texte0.grid(row = 0,column = 0,columnspan = 2 ) fenetre.bind_all('<Key>',lambda event : touche(event,distance,objet )) fenetre.mainloop ()
educationdunumerique.fr. Tous  droits réservés. D Pérarnaud Limoges.