pygame.event.get()输入丢失问题排查及解决
游戏输入异常问题解决记录
已解决:原因是电脑的手掌误触拦截功能,导致同时按下其他键盘按键时,左键点击无法被识别。大家可以检查这个设置!
原问题
在游戏核心循环中每帧调用一次pygame.event.get(),WASD输入几乎无延迟且正常响应,但左键点击输入经常丢失,除WASD外的其他输入似乎都有明显延迟?
相关代码
def processInput(self): events = pygame.event.get() if len(events) != 0: print(events) for event in events: match event.type: case pygame.QUIT: self.running = False break case pygame.KEYDOWN: self.inputs.append(event.key) case pygame.KEYUP: self.inputs.remove(event.key) case pygame.MOUSEBUTTONDOWN: print("button down!") b = event.button a = -1 match(b): case 1: a = pygame.BUTTON_LEFT case 2: a = pygame.BUTTON_MIDDLE case 3: a = pygame.BUTTON_RIGHT case _: pass self.inputs.append(a) case pygame.MOUSEBUTTONUP: b = event.button r = -1 match(b): case 1: r = pygame.BUTTON_LEFT case 2: r = pygame.BUTTON_MIDDLE case 3: r = pygame.BUTTON_RIGHT case _: pass self.inputs.remove(r) case _: pass
MOUSEBUTTONDOWN分支中的print("button down!")语句没有输出,说明问题并非出在后续的输入处理环节。
尝试将操作绑定到其他键盘按键,同样存在延迟问题,只有WASD按键正常工作。因此问题似乎并非pygame的MOUSEBUTTONDOWN事件本身导致,但不清楚具体原因。
内容的提问来源于stack exchange,提问作者Daniel Liao
相关产品推荐
相关产品推荐

