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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| from tkinter import *
import tkinter as Tk
from math import sin, cos
def move():
global x, y, flag, dx, dy, vx, ms
if x > 1275 or x < 30 or (ynoir_haut_gauche<y-10<ynoir_haut_droite and xnoir_haut_gauche<x-10<xnoir_haut_droite) or (ynoir_haut_gauche<y+10<ynoir_haut_droite and xnoir_haut_gauche<x+10<xnoir_haut_droite) or (ynoir_bas_gauche<y-10<ynoir_bas_droite and xnoir_bas_gauche<x-10<xnoir_bas_droite) or (ynoir_bas_gauche<y+10<ynoir_bas_droite and xnoir_bas_gauche<x+10<xnoir_bas_droite):
dx = -dx
vx = -vx
x += dx
x += vx
if y > 580 or y < 30:
dy = -dy
y += dy
can.coords(ball, x-10, y-10, x+10, y+10)
if flag > 0:
fen.after(ms, move)
def start():
global flag, ms
flag += 1
if flag == 1:
ms = 6
move()
def Mouvement_curseur(event):
X = event.x # détecte la position de la souris en x
Y = event.y # détecte la position de la souris en x
title = "Dispatch Ball, Positions du curseur de la souris X = %d Y = %d" % (X, Y)
fen.title(title)
# limite des carrées dans la zone de jeu
if Y<60: # l'ordonnée de la barre ne peut aller à moins de 60
Y=60 # lorsque y de la souris atteint moins de 60 alors l'ordonnée de la barre stagne à 60
if Y>540: # l'ordonnée de la barre ne peut aller à plus de 540
Y=540 # lorsque y de la souris atteint plus de 640 alors l'ordonnée de la barre stagne à 540
# mise à jour de la position de l'objet
can.coords(carre_noir_bas,640,Y+50,660,590)
can.coords(carre_noir_haut,640,11,660,Y-50)
flag = 0
x, y = 500, 300
dx, dy = 2, 2
vx=cos(45)
# carré bas du milieu #
xnoir_bas_gauche = 640
ynoir_bas_gauche = 408
xnoir_bas_droite = 660
ynoir_bas_droite = 590
# carré haut du milieu #
xnoir_haut_gauche = 640
ynoir_haut_gauche = 11
xnoir_haut_droite = 660
ynoir_haut_droite = 272
#titre fenêtre
fen = Tk.Tk()
fen.title(" Dispatch Ball ")
Largeur = 1300
Hauteur = 600
can = Tk.Canvas(fen, bg= "white", width= Largeur, height= Hauteur)
can.grid(row= 3, column= 0)
ball = can.create_oval(x-10, y-10, x+10, y+10, outline= "black", fill= "black")
carre_noir_bas = can.create_rectangle(640, 408, 660, 590, outline= "maroon", width = 2, fill= 'gray')
carre_noir_haut = can.create_rectangle(640, 10, 660, 272, outline= "maroon", width = 2, fill= 'gray')
#Liaison entre événement et fonction
can.bind('<Motion>', Mouvement_curseur) # Motion correspond à la detection instantané de la position de la souris
# Création du bouton "Débuter la Partie":
bouton=Button(fen, text= "Débuter la Partie", command= start).grid(row= 0, column= 0)
fen.mainloop() |
Partager