Pygame 混合重复按键和单次按键

3 投票
1 回答
770 浏览
提问于 2025-04-17 12:05

在Pygame这个游戏开发库里,你可以通过pygame.key.set_repeat()来设置按键的重复检测,也就是说,当你按住一个键不放时,程序会一直识别这个按键。

在我的情况下,我想要同时使用可以长按的按键和只识别一次的按键。具体来说,我希望能够通过按住某些键来移动角色,但发射导弹的时候只需要每次按一下键就可以了。

更清楚地说,我只想对移动的按键(比如上、下、左、右等)进行长按识别。而其他的按键,如果按住不放,只希望程序识别一次。

1 个回答

2

你可以为那些你只想在按下时识别一次的按键设置一个状态跟踪器。当你检测到按键按下(KEYDOWN)事件时,就把一个标志设置为 True;然后当你检测到按键抬起(KEYUP)事件时,再把这个标志设置回 False。这样的话,只有当标志不是 True 的时候,你才会对按键按下事件做出反应。

另外一种方法是,你可以为那些你想要重复识别的按键设置一个状态跟踪器,然后定期检查这个状态(比如每隔 X 毫秒检查一次),看看这个按键是否被标记为“按下”,如果是的话,就执行相应的操作。

撰写回答