class Window(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,None) self.initialize() ############################################################################################################################ # Initialise les données : ############################################################################################################################ def initialize(self): ## Paramètre d'affichage de la fenetre ## self.title('Mario') self.grid # type grille d'organisation cf Tkinter self.geometry("1000x550") # Taille de la fenetre self.entry = Tkinter.Entry(self) self.grid_columnconfigure(0,weight=1) self.resizable(False,False) # fenetre extensible self.data_window = Data_window(self) ## Composants graphiques de la fenetre ## panneau=Tkinter.PanedWindow(orient=Tkinter.VERTICAL) # Panneau principal panneau.pack(expand="yes", fill="both") # Menu # menu = Tkinter.PanedWindow(height=25,orient=Tkinter.HORIZONTAL) # ligne de menu contenant les boutons d'interaction panneau.add(menu) # Logo # mario_img=Image.open("./mario_b.gif") # chargement de l'image mario_img = mario_img.resize((75,48)) mario_img = ImageTk.PhotoImage(mario_img) label = Tkinter.Label(image=mario_img) # création du label label.photo = mario_img # configuration du label en mode image menu.add(label) # Boutons # test = Tkinter.Button(menu,text="Boutton test", command=self.test) # Autre bouton menu.add(test) # Bouton de selection du niveau level_button_text = "level 0" self.level = Tkinter.Button(menu,text=level_button_text, command=self.set_level) # Bouton de redemarrage menu.add(self.level) # Bouton de redemarrage du niveau restart = Tkinter.Button(menu,text="Restart", command=self.restart) # Bouton de redemarrage menu.add(restart) ## Zone de jeu ## self.game_window = Tkinter.Canvas(self, background='darkgray',width=GAME_WIDTH, height = GAME_HEIGHT) # Création d'une zone graphique : Canvas self.game_window.pack(side=Tkinter.BOTTOM) # Positionnement en bas ## Interruptions clavier ## # Controles manuels self.bind_all('d', self.forward) # Avancer 'd' self.bind_all('q', self.back) # Reculer 'q' self.bind_all("<space>", self.jump) # sauter Space self.bind_all('t', self.test) ############################################################################################################################ # Methodes d'appel de deplacement ############################################################################################################################ def forward(self,*args): self.control.ordered("forward") def back(self,*args): self.control.ordered("back") def jump(self,*args): self.control.ordered("jump") # Avance selon la direction du personnage # def walk(self,*args): self.control.ordered("walk") ############################################################################################################################ # Methodes génériques ############################################################################################################################ def get_window(self): return self.game_window def set_control(self,control): self.control = control self.data_window.set_control(self.control) def restart(self,*args): self.control.restart() def test(self,*args): self.control.test(args) def set_level(self,*args): if self.control.level < 7: self.control.level = self.control.level + 1 else: self.control.level = 0 self.level_button_text = "level "+str(self.control.level) self.level.config(text = self.level_button_text) ############################################################################################################################ # méthodes générales ############################################################################################################################ def pop_text(self,text): font = tkFont.Font(size = 50, weight = "bold") return self.game_window.create_text(400,200, text=text,font=font) def update_data(self): self.data_window.update_data() def update_assertz(self,interdiction): self.data_window.update_assertz(interdiction)