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
|
from tkinter import *
activekey = {}
for k in ['e', 's', 'd', 'x', 'left', 'up', 'right', 'down']:
activekey[k] = False
def pressed(event):
key = event.keysym.lower() # lower : met en minuscules une chaine de caractères
if key in activekey:
activekey[key] = True
def released(event):
key = event.keysym.lower()
if key in activekey:
activekey[key] = False
def animation():
c1 = canvas.coords(player1)
c2 = canvas.coords(player2)
if activekey['e']:
canvas.coords(player1, (c1[0], c1[1]-2, c1[2], c1[3]-2))
if activekey['s']:
canvas.coords(player1, (c1[0]-2, c1[1], c1[2]-2, c1[3]))
if activekey['d']:
canvas.coords(player1, (c1[0]+2, c1[1], c1[2]+2, c1[3]))
if activekey['x']:
canvas.coords(player1, (c1[0], c1[1]+2, c1[2], c1[3]+2))
if activekey['up']:
canvas.coords(player2, (c2[0], c2[1]-2, c2[2], c2[3]-2))
if activekey['left']:
canvas.coords(player2, (c2[0]-2, c2[1], c2[2]-2, c2[3]))
if activekey['right']:
canvas.coords(player2, (c2[0]+2, c2[1], c2[2]+2, c2[3]))
if activekey['down']:
canvas.coords(player2, (c2[0], c2[1]+2, c2[2], c2[3]+2))
root.after(10, animation)
root = Tk()
canvas = Canvas(width=500, height=500)
canvas.pack()
player1 = canvas.create_oval(20, 20, 70, 70, width=2, fill='blue')
player2 = canvas.create_oval(420, 420, 470, 470, width=2, fill='red')
root.bind("<KeyPress>", pressed)
root.bind("<KeyRelease>", released)
animation()
root.mainloop() |
Partager