使用数字键盘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坐标。
*第一个答案中提供的解决方案*
答案 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()
进行上述实验,看看您是否可以深入了解自己的问题(例如,您是否有遗漏的任何步骤?)