我想创建一个程序,其中一个乌龟对象移动到用户单击鼠标的位置,同时移动另一个乌龟对象。我有第一部分,但我似乎无法让其余的工作。
任何帮助都将不胜感激。
这是我的代码。 (第一部分归功于@Cygwinnian)
from turtle import *
turtle = Turtle()
screen = Screen()
screen.onscreenclick(turtle.goto)
turtle.getscreen()._root.mainloop()
turtle2 = Turtle()
while True:
turtle2.back(100)
turtle2.forward(200)
turtle2.back(100)
答案 0 :(得分:2)
我绝不是Python turtle
模块的专家,但是我认为这些代码可以满足您的需求。第一只乌龟不会在第一只海龟来回移动时来回移动:
from turtle import *
screen = Screen() # create the screen
turtle = Turtle() # create the first turtle
screen.onscreenclick(turtle.goto) # set up the callback for moving the first turtle
turtle2 = Turtle() # create the second turtle
def move_second(): # the function to move the second turtle
turtle2.back(100)
turtle2.forward(200)
turtle2.back(100)
screen.ontimer(move_second) # which sets itself up to be called again
screen.ontimer(move_second) # set up the initial call to the callback
screen.mainloop() # start everything running
此代码创建一个函数,可以从起始位置反复来回移动第二只乌龟。它使用ontimer
的{{1}}方法来反复安排自己。一个稍微聪明的版本可能会检查变量是否应该退出,但我没有打扰。
这确实让两只海龟都移动了,但它们实际上并没有同时移动。在任何特定时刻,只有一个人可以移动。我不确定是否有任何方法可以解决这个问题,除了将动作分成更小的部分(例如让海龟交替移动一个像素)。如果你想要更漂亮的图形,你可能需要从screen
模块继续前进!