1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| # -*- coding:Latin-1 -*-
from Tkinter import *
class Main:
def __init__(self,boss=None):
"""Constructeur de la fenêtre principale"""
self.fen=Tk()
self.fen.title('Jeu fou du chien')
self.can=Canvas(self.fen,bg='dark grey')
self.can.configure(width=620,height=620,bg='ivory')
self.x1,self.y1=10,10 #coordonnées initiales
self.dx,self.dy=15,0 #'pas' du déplacement
self.oval1=self.can.create_oval(self.x1,self.y1,self.x1+30,self.y1+30,width=2,fill='red')
self.can.pack(side=TOP,pady=5)
self.fen.after(50,self.resolution)
self.fen.mainloop()
def demarrage(self):
self.resolution()
def resolution(self):
"déplacement de la balle"
global x1,y1,dx,dy
self.x1,self.y1=self.x1+self.dx,self.y1+self.dy
if self.x1>210:
self.x1,self.dx,self.dy=210,0,15
if self.y1>210:
self.y1,self.dx,self.dy=210,-15,0
if self.x1<10:
self.x1,self.dx,self.dy=10,0,-15
if self.y1<10:
self.y1,self.dx,self.dy=10,15,0
self.can.coords(self.oval1,self.x1,self.y1,self.x1+30,self.y1+30)
for i in range(20):
self.fen.after(50,self.resolution)
print 'la balle a bougé'
#avec lambda: tout bouge dés le début et s'arrête
#sans lambda: continue à boucler car "la balle a bougé" s'affiche à l'écran, mais affichage graphique change soudainement au début puisse reste fixe
#self.fen.after(50,self.resolution)
#print 'la balle a bougé'
#programme principal:
if __name__=='__main__':
Main() |
Partager