Python 海龟屏幕。跟踪器(0)不';不要停止所有动画

Python 海龟屏幕。跟踪器(0)不';不要停止所有动画,python,animation,turtle-graphics,Python,Animation,Turtle Graphics,我认为使用Screen.tracer(0)可以禁用Python海龟图形中的动画。但是,在下面的程序中,如果您注释掉screen.update(),仍然会出现一些动画-海龟的踪迹会被画出来,尽管海龟不会“移动”(或被更新)。请问这里发生了什么事?有没有办法使屏幕更新完全手动 import turtle def move(): my_turtle.forward(1) my_turtle.right(1) screen.update() # Comment out thi

我认为使用Screen.tracer(0)可以禁用Python海龟图形中的动画。但是,在下面的程序中,如果您注释掉
screen.update()
,仍然会出现一些动画-海龟的踪迹会被画出来,尽管海龟不会“移动”(或被更新)。请问这里发生了什么事?有没有办法使屏幕更新完全手动

import turtle

def move():
    my_turtle.forward(1)
    my_turtle.right(1)
    screen.update()  # Comment out this line to see issue.
    screen.ontimer(move, 10)

screen = turtle.Screen()
my_turtle = turtle.Turtle()
my_turtle.shape("turtle")
screen.tracer(0)
move()
turtle.done()
不,屏幕。跟踪器(0)不会停止所有动画。一些turtle命令,如
end\u fill()
直接调用
screen.update()
,一些命令,如
dot()
调用它是因为它们依次调用了其他方法。您仅在调用
update()
时通知系统,而不是完全控制它

将您的
update()
调用放在您认为需要的地方,不要假设某些方法强制更新,否则海龟的未来更新可能会破坏您的代码。(也就是说,可能有人真的在修理乌龟。)

有关可能有用的详细信息,请参阅我的和有关

否屏幕的信息。跟踪器(0)不会停止所有动画。一些turtle命令,如
end\u fill()
直接调用
screen.update()
,一些命令,如
dot()
调用它是因为它们依次调用了其他方法。您仅在调用
update()
时通知系统,而不是完全控制它

将您的
update()
调用放在您认为需要的地方,不要假设某些方法强制更新,否则海龟的未来更新可能会破坏您的代码。(也就是说,可能有人真的在修理乌龟。)


有关可能有用的详细信息,请参阅我的和有关turtle.py中的

的信息,
forward()
调用\u go(),它设置端点,然后调用\u goto()

_如果线段超过42,goto()将创建一条新线

if len(self.currentLine) > 42: # 42! answer to the ultimate question
                               # of life, the universe and everything
    self._newLine()
该值似乎是任意的;您可以将其设置为更高的值,但是会出现暂停,似乎什么都没有发生

def _newLine(self, usePos=True):
    """Closes current line item and starts a new one.
       Remark: if current line became too long, animation
       performance (via _drawline) slowed down considerably.
    """

在turtle.py中,
forward()
调用设置端点的
\u go()
,然后调用
\u goto()

_如果线段超过42,goto()将创建一条新线

if len(self.currentLine) > 42: # 42! answer to the ultimate question
                               # of life, the universe and everything
    self._newLine()
该值似乎是任意的;您可以将其设置为更高的值,但是会出现暂停,似乎什么都没有发生

def _newLine(self, usePos=True):
    """Closes current line item and starts a new one.
       Remark: if current line became too long, animation
       performance (via _drawline) slowed down considerably.
    """

是否要停止所有动画?如果是这样的话,
screen.ontimer(move)
应该不起作用。我想要的是完全控制动画。当我认为只有在使用
screen.update()
时,当
screen.tracer()
设置为零时,才应该更新窗口时,出现了一些“部分”动画,这让我很恼火。是否要停止所有动画?如果是这样的话,
screen.ontimer(move)
应该不起作用。我想要的是完全控制动画。当我认为只有在使用
screen.update()
时,当
screen.tracer()
设置为零时,才应该更新窗口时,出现了一些“部分”动画,这让我感到很不舒服。