Pygame 混合重复按键和单次按键
在Pygame这个游戏开发库里,你可以通过pygame.key.set_repeat()来设置按键的重复检测,也就是说,当你按住一个键不放时,程序会一直识别这个按键。
在我的情况下,我想要同时使用可以长按的按键和只识别一次的按键。具体来说,我希望能够通过按住某些键来移动角色,但发射导弹的时候只需要每次按一下键就可以了。
更清楚地说,我只想对移动的按键(比如上、下、左、右等)进行长按识别。而其他的按键,如果按住不放,只希望程序识别一次。
1 个回答
2
你可以为那些你只想在按下时识别一次的按键设置一个状态跟踪器。当你检测到按键按下(KEYDOWN)事件时,就把一个标志设置为 True
;然后当你检测到按键抬起(KEYUP)事件时,再把这个标志设置回 False
。这样的话,只有当标志不是 True
的时候,你才会对按键按下事件做出反应。
另外一种方法是,你可以为那些你想要重复识别的按键设置一个状态跟踪器,然后定期检查这个状态(比如每隔 X 毫秒检查一次),看看这个按键是否被标记为“按下”,如果是的话,就执行相应的操作。