Python乌龟键侦听器无响应

时间:2019-12-28 03:49:43

标签: turtle-graphics

因此,我对python图形还比较陌生。我一直在宽松地关注太空侵略者的教程,但无法让关键的监听器正常工作。有什么想法吗?

import turtle
import os
window = turtle.Screen()
player = turtle.Turtle()
move = 15


# sets up the window, background color and player sprite
def setup():
    window.bgcolor("black")
    window.title("Space Invaders")

    player.color("red")
    player.shape("triangle")
    player.penup()
    player.speed(0)
    player.setposition(0, -250)
    player.setheading(90)


# controls left and right movement
def move_left():
    player.setx(player.xcor() - move)
    print("left")


def move_right():
    player.setx(player.xcor() + move)
    print("right")


if __name__ == "__main__":
    setup()
    window.onkey(move_left(), "Left")
    window.onkey(move_right(), "Right")
    window.listen()
    turtle.mainloop()

2 个答案:

答案 0 :(得分:0)

这只是一个猜测,因为我不是乌龟专家,但可能是两者之一

1-您应该在windows.onkey()方法之前使用windows.listen()方法。

2-您应该添加一个while循环,该循环始终设置为true(但是我想那是turtle.mainloop()的作用)?

答案 1 :(得分:0)

不确定100%,但我认为您应该服用

<custom-validation-message [control]="form.get('name')"></custom-validation-message>

在if语句之外,因为这可能是问题所在。 如果那不起作用,请尝试摆脱()这样的...

window.onkey(move_left(), "Left")
window.onkey(move_right(), "Right")

如果这样不起作用,则将设置功能内的所有内容都移走。

这就是我只能说的全部,但是如果所有失败的话,请更仔细地阅读本教程。我也发现了这两点可能会很有帮助。 Python, Turtle Graphics, Key bindings 还有这个 Make key bindings work for Space Invaders game