将数字键盘键用于Python龟图形onkey函数的问题

时间:2019-05-15 06:09:46

标签: python python-3.x turtle-graphics

使用数字键盘1-9键作为输入来创建turtle.onkey命令时遇到问题。

我查看了源代码和文档,它看起来像键一样来自tkinker。我从那里的文档以及a list中找到了this list个键,从我可以收集到的数字中,数字键盘上的数字“ 4”应为“ KP_4”,但是我的代码不会它。我尝试使用更传统的键,例如左箭头的“ Left”,这些键似乎工作正常。我也在这里研究了有关pygame的文档,也许这很相似,但是他们为numpad 4列出的文档也不起作用。 (是K_KP4)

def player_move_left():
    x = player_char.xcor()
    x -= player_max_move
    player_char.setx(x)
turtle.onkey(player_move_left,"K_P4")

这应该采用x坐标,然后减去移动量,然后将该数字应用于玩家变量的x坐标。

*第一个答案中提供的解决方案*

1 个答案:

答案 0 :(得分:0)

我的(OS X)系统无法区分主键上的“ 4”和小键盘上的“ 4”,两者都移动了乌龟。但是,它确实区分了主键上的“ Return”和小键盘上的“ KP_Enter”,因此我将在示例代码中使用它:

from turtle import Screen, Turtle

player_max_move = 10

def player_move_left():
    x = player_char.xcor() - player_max_move

    player_char.setx(x)

screen = Screen()

player_char = Turtle()

screen.onkey(player_move_left, "KP_Enter")  # vs "Return"
screen.listen()

screen.mainloop()

进行上述实验,看看您是否可以深入了解自己的问题(例如,您是否有遗漏的任何步骤?)