Кажется, что оба хода происходят одновременно, потому что содержимое холста обновляется только после завершения time.sleep
.Чтобы увидеть первый ход отдельно, нужно заставить холст обновиться до паузы с помощью root.update_idletasks()
.
Кстати, вам не нужно импортировать модуль time
, чтобы сделать паузу, вы можетевместо этого используйте root.after(2000)
(время указывается в мс).
from tkinter import *
root = Tk()
root.configure(background="black")
canvas = Canvas(root, bg = "black", height = 708, width = 1280)
def callback(event):
if event.y < 350:
canvas.create_rectangle(500,234,780,334,fill="red",width=0)
root.update_idletasks()
root.after(2000)
canvas.create_rectangle(500,374,780,474,fill="#004800",width=0)
else:
canvas.create_rectangle(500,374,780,474,fill="red",width=0)
root.update_idletasks()
root.after(2000)
canvas.create_rectangle(500,234,780,334,fill="#004800",width=0)
canvas.bind("<Button-1>", callback)
canvas.pack(fill=BOTH, expand=1, pady=0, padx=0)
root.mainloop()