问题与Pygame并持有多个键

时间:2016-01-04 22:32:32

标签: python pygame

我正在pygame中编写一个代码,用户可以同时按住多个键,但是我遇到了以下代码行的一些奇怪行为:

print(pygame.key.get_pressed()[273:277])

此行的目的是检测当前正在按下哪些箭头键(它正在使用该范围,因为位置pygame.key.get_pressed()[273:277]的元素对应于4个箭头键)。

当我单独按下任意4个箭头键时,它会正确打印,但我发现如果我同时按住2个以上的箭头键,一些键就会停止显示。例如,按住“向上”,“向右”,然后按“向左”似乎没有做任何事情

起初,我认为可能是因为我的键盘可能无法一次检测到超过2次按键,但我不认为这是发生了什么,因为我注意到如果我按住Up and Down ,然后按下左,它不会记录我持有左。但是,如果我按住“向上”和“向下”,然后按“向右”,则会按下第三个按钮。

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用keyup / keydown事件并存储状态变量。 if event.type == KEYUP: if event.key == (insert key id here): uparrow_pressed = False elif event.type == KEYDOWN: if event.key == (insert key id here): uparrow_pressed = True

答案 1 :(得分:0)

实际上,这是你的键盘工作。

游戏设计师众所周知,有些按键可以使用,有些则不然。根据这个link,他们的游戏中有多个与他们用来开枪和移动坦克的钥匙组合相关的错误。如果你可以或者只是找到可以使用的键组合,最好使用更多可识别的键,在这种情况下,它将是4次4次4次4至少256种组合你可以通过...我建议创建一个程序。