我试着让一个乌龟动画从一个按钮开始到一个按钮停止。用一个按钮我很难停下来?以下是我目前为止的代码:
import turtle
import tkinter as tk
def start():
t.forward(100)
t.right(90)
t.forward(100)
t.left(90)
t.forward(100)
t.right(90)
t.forward(100)
t.right(90)
t.forward(100)
def stop():
t.stop
def clear():
canvas.delete("all")
root = tk.Tk()
canvas = tk.Canvas(width = 500, height = 500)
canvas.pack()
t = turtle.RawTurtle(canvas)
tk.Button(text = "Start", command = start).pack(side = tk.LEFT)
tk.Button(text = "Stop", command = stop).pack(side = tk.LEFT)
tk.Button(text = "Clear", command = clear).pack(side = tk.LEFT)
root.mainloop()
“清除”按钮也起作用,但之后“开始”按钮就不起作用了。如果有人能帮我的话。在
感谢@Mike-SMT帮助我完成这段代码。以下是经过编辑且功能齐全的代码:
^{pr2}$
除非在绘制的每一行之间提供一个检查器,否则无法停止每个draw语句。在
下面的代码只是一个粗略的模型,演示如何制作一些东西来检查跟踪变量,该变量用于告诉它不再绘制新行。在
最接近停止绘图的方法是:
这至少会在每行之后停止绘制,但不能停止绘制中间线。在
只是为了好玩,如果我们添加一些跟踪变量和使用一些更干净的逻辑,我们可以开始,停止和重新开始。在
更新:根据@cdlane下面的评论,我添加了添加跟踪并更新了clear函数。这应该允许启动-停止-启动没有问题,也能够清除现场。在
^{pr2}$我同意@Mike SMT的回答中的想法,但我会用另一种方式来做。海龟和它的控件在我看来非常像一个Python生成器,所以我把它改成这样。海龟沿着一条路径移动,一次一个像素,产生控制权,这个控制权可能返回,也可能不会返回。或者它可能会耗尽路径并停止迭代:
您可以将当前的
^{pr2}$clear()
函数替换为:如果你只想抹去画好的路,却把乌龟留在它的终点。如果要删除路径并将海龟重置回起点,请执行以下操作:
相关问题 更多 >
编程相关推荐