Реализуйте логику как на гифке
Таймер вообще невероятно классная штука. С помощью него можно добиться динамики в программе. Например можно сделать примерно следующим образом базовую структуру типовой игры.
from tkinter import *
root = Tk()
root.title("Я приложение =)")
# данные описывающие состояние игры
data = {
"counter": 0,
}
# тут обновляем положение объектов
def update():
pass
# тут рисуем объекты
def draw_all():
pass
# это обработчик одной итерации
def on_tick():
update() # обновляем положение объектов на канве
canvas.delete("all") # очищаем канву
draw_all() # рисуем объекты
data['counter'] += 1 # увеличиваем счетчик итераций
root.after(33, on_tick) # перезапускаем счетчик
canvas = Canvas(root, width=500, height=200, bg="white")
canvas.pack()
on_tick()
root.mainloop()
использую такю структуру очень удобно писать даже очень сложную логику.
Допустим я хочу реализовать следование кружочка за мышью. Добавим положение мыши в данные:
data = {
"counter": 0,
"mouse": (0, 0), # по умолчанию считаем что мышь имеет координату 0, 0
}
def update():
pass
def draw_all():
x, y = data['mouse']
# рисуем кружок
canvas.create_oval(
x - 10,
y - 10,
x + 10,
y + 10,
fill="orange"
)
запускаем:
вон он там в левом верхнем углу.
Теперь давайте попробуем поймать событие движения мыши и в этом событии будем менять координаты кружка:
попробуем запустить:
прикольно да!) Теперь попробуйте задание сделать =)