我在使用numpad 1-9键作为输入创建turtle.onkey命令时遇到了问题。
我查看了源代码和文档,它显示了作为参数来自tkinker的键。我从文档中找到了键的一份清单,还有这份清单,从我可以收集到的内容来看,参数应该是数字'4‘的"KP_4“,但是我的代码不接受它。我尝试了更传统的键,如“左”的左箭头,这些似乎很好。我还在这里查看了一份关于玩偶游戏的文档,认为可能类似,但他们为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坐标上。
*在第一个答案中提供的解决方案*
发布于 2019-05-15 16:36:11
我的(OS )系统没有区分主键上的"4“和键盘上的"4”,它们都移动了乌龟。但是,它确实区分了主键上的“返回”和键盘上的"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()
用上面的方法进行实验,看看你是否能洞察你的问题(例如,你有没有遗漏任何步骤?)
https://stackoverflow.com/questions/56142698
复制相似问题