当我导入乌龟时,尝试使用while True:
循环,它不起作用。这是代码:
import turtle
import time
stage = turtle.Turtle()
width = 900
height = 500
def up():
turtle.setheading(90)
turtle.forward(10)
def down():
turtle.setheading(270)
turtle.forward(10)
def char():
turtle.listen()
turtle.onkey(up, 'w')
turtle.onkey(up, 's')
turtle.setup(width, height)
turtle.goto(390, 0)
char()
while True:
if (turtle.ycor() >= 250):
turtle.goto(460, 0)
stage.goto(350, 0)
turtle.done()
我不知道为什么它不起作用,它只是冻结(没有响应)然后,没有错误消息。这真的太烦人了,因为在我有乌龟和真正循环的其他程序中也发生了同样的事情。
如果问题是True,有没有其他方法可以'永远检查',谢谢!
答案 0 :(得分:0)
我不确切知道你需要完成什么,但你可能只是把
if (turtle.ycor() >= 250):
turtle.goto(460, 0)
在up()和down()里面。
虽然你需要让这个功能永远运行,正如你在评论中提到的那样,你可以把你的while True:
内容放在第二个线程中,这样可以防止窗口冻结。
答案 1 :(得分:0)
如果乌龟已到达感兴趣的边界,您可以使用任何移动乌龟检查的例程,而不是您的无限循环:
import turtle
WIDTH = 900
HEIGHT = 500
def up():
turtle.setheading(90)
turtle.forward(10)
check()
def down():
turtle.setheading(270)
turtle.forward(10)
check()
def check():
if turtle.ycor() >= HEIGHT/2:
turtle.goto(400, 0)
turtle.setup(WIDTH, HEIGHT)
turtle.goto(350, 0)
turtle.listen()
turtle.onkey(up, 'w')
turtle.onkey(down, 's')
turtle.done()
另请注意,您的原始代码有两只海龟,默认海龟和一只名为stage
的海龟 - 确保跟踪您正在操纵的海龟!另外,在坐标系统的顶部,你将乌龟移出屏幕(除非那是你想要的),无法将它移回屏幕。