Я получаю странное поведение, когда нажимаю кнопку reset
в программе ниже, пока путь не будет завершен. Когда я это делаю, черепаха ускоряется и двигается хаотично, в то же время все еще в основном придерживаясь пути. Чем больше раз я нажимаю reset
, тем больше стираем c движение.
Может кто-нибудь объяснить, как кнопка reset
полностью сбрасывает путь и позволяет избежать проблемы, описанной выше?
import turtle
import tkinter as tk
def create_reset_button_tkinter():
"""An alternative approach to creating a button using Tkinter."""
canvas = screen.getcanvas()
button = tk.Button(canvas.master, text="Reset", background="green", foreground="white", bd=0,
activebackground="green", activeforeground="white", command=reset)
canvas.create_window(-100, 100, window=button)
def reset():
global path_iter
bob.goto(0, 0)
path = [(0, 0), (20, 0), (20, 20), (20, 30), (30, 20), (40, 20), (40, 30), (50, 30), (60, 30), (60, 40)]
path_iter = iter(path)
go_to_next_coord()
def go_to_next_coord():
try:
next_coord = next(path_iter)
except StopIteration:
return
bob.goto(next_coord)
turtle.ontimer(go_to_next_coord, 500)
screen = turtle.Screen()
create_reset_button_tkinter()
bob = turtle.Turtle("square")
bob.penup()
path = [(0, 0), (20, 0), (20, 20), (20, 30), (30, 20), (40, 20), (40, 30), (50, 30), (60, 30), (60, 40)]
path_iter = iter(path)
go_to_next_coord()
turtle.done()