import tkinter as tk import time import random import threading width_fen, height_fen= 1002, 600 #taille de la fenètre pos_x_b, f_x_b = 130, 130 # Position initiale du Bonhomme pos_y_b, f_y_b = 240, 240 pos_x_o = pos_x_o2 = 1000 pos_y_o = 570 taille_saut = 50 # Nombre de cases sautées lors d'un appui dpcmt= 10 # nombre de cases lors du déplacement de l'obstacle arret = False del_obst = False #variables bonhomme/obstacles Bonhomme= [0, 0, 0, 0] obstacle= [0] #fonction de saut def saut(evt): global Bonhomme, pos_y_b while pos_y_b+120 <= height_fen : can.move(Bonhomme[0], 0, -taille_saut) #le bonhomme saute can.move(Bonhomme[1], 0, -taille_saut) can.move(Bonhomme[2], 0, -taille_saut) can.move(Bonhomme[3], 0, -taille_saut) pos_y_b = pos_y_b - taille_saut print ("a sauté", ", ", pos_x_b, ", ", pos_y_b+300) if pos_y_b+360 <= height_fen: fen.after(1000, retour) fen.mainloop() #redescente def retour(): global pos_y_b, Bonhomme can.move(Bonhomme[0], 0, +taille_saut) #le bonhomme redescend can.move(Bonhomme[1], 0, +taille_saut) can.move(Bonhomme[2], 0, +taille_saut) can.move(Bonhomme[3], 0, +taille_saut) pos_y_b = pos_y_b + taille_saut print ("est redescendu",pos_x_b, ", ", pos_y_b+300) #obstacles def deplacement(): global obstacle, pos_x_o2, pos_y_o, del_obst while pos_x_o2 >= 0: can.move(obstacle[0], -dpcmt, 0) pos_x_o2 = pos_x_o2 - dpcmt print(pos_x_o2, ", ", pos_y_o) if pos_x_o2 <= -30: del_obst= True can.delete(obstacle[0]) fen.mainloop() elif (pos_x_b <= pos_x_o2 <= pos_x_b+50) & (pos_y_b+330 <= pos_y_o <= pos_y_b+360): game_over() fen.after(100, deplacement) while arret == False: fen.after(500, obst) fen.mainloop() #dessiner le bonhomme et l'obstacle def placeBonhomme(x, y): global Bonhomme Bonhomme[0] = can.create_rectangle(x,y,x+120,y+120, fill='black') #dessine un rectangle Bonhomme[1] = can.create_rectangle(x,y+120,x+60,y+180, fill='black') #dessine un rectangle Bonhomme[2] = can.create_rectangle(x,y+180,x+120,y+240, fill='black') #dessine un rectangle Bonhomme[3] = can.create_rectangle(x,y,x+60,y+360, fill='black') #dessine un rectangle def obst(): obstacle[0] = can.create_rectangle(pos_x_o,pos_y_o,pos_x_o+30,pos_y_o+30, fill='red') #arrêt du jeu : Game-Over def game_over(): global arret arret = True can.delete(Bonhomme[0]) can.delete(Bonhomme[1]) can.delete(Bonhomme[2]) can.delete(Bonhomme[3]) can.delete(obstacle[0]) print ("perdu!") end = can.create_text(500, height_fen-300, font=("Speedline", 35), text= "Dommage, vous avez perdu !", fill="black") BoutonQuitter = tk.Button(fen, text ='Quitter', command =fen.destroy) BoutonQuitter.pack(padx = 5, pady = 5) #main Fonction def jeu(): placeBonhomme(pos_x_b, pos_y_b) if (del_obst == False): deplacement() #fenètre graphique fen = tk.Tk() fen.title("jeu par Quentin LEBLANC / Corentin PRECOMA") fen.bind("", saut) # Touche pour sauter can = tk.Canvas(fen) # Surface 'pour dessiner' can.configure(width=width_fen, height=height_fen) can.pack(side=tk.TOP) jeu()