【问题标题】:Python, turtle won't appear and won't respond to keyboard controlsPython,乌龟不会出现,也不会响应键盘控制
【发布时间】:2018-06-03 06:14:24
【问题描述】:

我正在尝试制作一个 Python 程序,其中玩家控制一只乌龟(来自“乌龟”模块)以达到目标,同时避开沿途的障碍物。

障碍物和目标绘制的代码工作正常,但是由于某种原因玩家海龟不可见并且不会响应键盘命令。我选择不包含整个代码,而是只包含相关部分。下面是播放器控件的代码。玩家已经设置为海龟,屏幕设置为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()

【问题讨论】:

    标签: python controls turtle-graphics


    【解决方案1】:

    一旦完成,您的示例就可以正常工作:

    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()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      相关资源
      最近更新 更多