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.
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 :
![]() |
![]() |
.
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 ()
|
|
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 ()
|