Code: Alles auswählen
import tkinter as tk
import random
from functools import partial
STEP_DELTA = 5
def show_control_info(parent):
tk.Label(
parent,
text=
'|W| ist nach oben\n'
'|A| ist nach links\n'
'|D| ist nach rechts\n'
'|S| ist nach unten\n'
'|Space| ist schießen'
).pack()
def move_circle(canvas, circle_id, x_delta, y_delta, step_count):
if step_count > 0:
canvas.move(circle_id, x_delta, y_delta)
canvas.after(
1000,
move_circle,
canvas,
circle_id,
x_delta,
y_delta,
step_count - 1,
)
if step_count == 0:
tk.Label(text="Du hast Verloren!!\n"
"Um das Spiel neuzustarten bitte erneut öffnen!"
).pack()
def move_up(canvas, rectangle_id, event):
if event.char == 'w':
canvas.move(rectangle_id, 0, -STEP_DELTA)
def move_down(canvas, rectangle_id, event):
if event.char == 's':
canvas.move(rectangle_id, 0, STEP_DELTA)
def move_right(canvas, rectangle_id, event):
if event.char == 'd':
canvas.move(rectangle_id, STEP_DELTA, 0)
def move_left(canvas, rectangle_id, event):
if event.char == 'a':
canvas.move(rectangle_id, -STEP_DELTA, 0)
def on_keypress(canvas, rectangle_id, event):
for move_func in [move_down, move_up, move_right, move_left]:
move_func(canvas, rectangle_id, event)
def main():
root = tk.Tk()
root.title('Centipede')
canvas = tk.Canvas(root, width=800, height=600, background='black')
canvas.pack()
circle_id = canvas.create_oval(10, 10, 20, 20, fill='green')
rectangle_id = canvas.create_rectangle(200, 200, 210, 210, fill='red')
root.bind('<KeyPress>', partial(on_keypress, canvas, rectangle_id))
x_delta = random.randint(1, 30)
y_delta = random.randint(1, 30)
tk.Button(
root,
text='Start',
command=partial(move_circle, canvas, circle_id, x_delta, y_delta, 10),
).pack()
tk.Button(
root, text='Controls', command=partial(show_control_info, root)
).pack()
if rectangle_id == circle_id:
tk.Label(text="Du hast Gewonnen!!"
).pack()
quit()
root.mainloop()
def koordinaten(x, y):
print(x,y,)
print(koordinaten)
if __name__ == '__main__':
main()
Ich möchte das wenn sich rectangle_id und circle_id sich treffen, dass das "Spiel" quitet