Python,乌龟不会出现,也不会响应键盘控制
Python, turtle won't appear and won't respond to keyboard controls
我正在尝试制作一个 Python 程序,其中玩家控制乌龟(来自 'turtle' 模块)到达目标,避开沿途的障碍。
绘制障碍物和目标的代码工作正常,但是由于某种原因玩家乌龟不可见并且不会响应键盘命令。我选择不包括整个代码,而是只包括相关部分。下面是播放器控件的代码。播放器已经设置为海龟,屏幕设置为 screen = turtle.Screen()
。当我尝试 运行 它时,我没有收到任何错误。如果有人想看,我会留下 link to the code on my github。
speed = 1
def travel():
player.forward(speed)
screen.ontimer(travel, 10)
player.pendown()
player.forward(10)
screen.onkey(lambda: player.setheading(90), 'Up')
screen.onkey(lambda: player.setheading(180), 'Left')
screen.onkey(lambda: player.setheading(0), 'Right')
screen.onkey(lambda: player.setheading(270), 'Down')
screen.listen()
travel()
screen.mainloop()
完成后,您的示例工作正常:
from turtle import Turtle, Screen
def travel():
player.forward(1)
screen.ontimer(travel, 10)
screen = Screen()
player = Turtle()
screen.onkey(lambda: player.setheading(0), 'Right')
screen.onkey(lambda: player.setheading(90), 'Up')
screen.onkey(lambda: player.setheading(180), 'Left')
screen.onkey(lambda: player.setheading(270), 'Down')
screen.listen()
travel()
screen.mainloop()
就您的大型程序而言,我建议您注释掉这些行:
goal._tracer(0)
...
obstacle._tracer(0)
你的 player
乌龟应该出现了。我建议您在完成大部分程序并且理解 tracer()
的作用之前不要乱用 tracer()
。
我正在尝试制作一个 Python 程序,其中玩家控制乌龟(来自 'turtle' 模块)到达目标,避开沿途的障碍。
绘制障碍物和目标的代码工作正常,但是由于某种原因玩家乌龟不可见并且不会响应键盘命令。我选择不包括整个代码,而是只包括相关部分。下面是播放器控件的代码。播放器已经设置为海龟,屏幕设置为 screen = turtle.Screen()
。当我尝试 运行 它时,我没有收到任何错误。如果有人想看,我会留下 link to the code on my github。
speed = 1
def travel():
player.forward(speed)
screen.ontimer(travel, 10)
player.pendown()
player.forward(10)
screen.onkey(lambda: player.setheading(90), 'Up')
screen.onkey(lambda: player.setheading(180), 'Left')
screen.onkey(lambda: player.setheading(0), 'Right')
screen.onkey(lambda: player.setheading(270), 'Down')
screen.listen()
travel()
screen.mainloop()
完成后,您的示例工作正常:
from turtle import Turtle, Screen
def travel():
player.forward(1)
screen.ontimer(travel, 10)
screen = Screen()
player = Turtle()
screen.onkey(lambda: player.setheading(0), 'Right')
screen.onkey(lambda: player.setheading(90), 'Up')
screen.onkey(lambda: player.setheading(180), 'Left')
screen.onkey(lambda: player.setheading(270), 'Down')
screen.listen()
travel()
screen.mainloop()
就您的大型程序而言,我建议您注释掉这些行:
goal._tracer(0)
...
obstacle._tracer(0)
你的 player
乌龟应该出现了。我建议您在完成大部分程序并且理解 tracer()
的作用之前不要乱用 tracer()
。