Pygame平台游戏实现急停功能时调用对应方法无响应如何解决
问题原因
你代码里的核心错误是混淆了比较运算符和赋值运算符:
==是比较运算符,作用是判断左右两侧的值是否相等,只会返回True或False的布尔结果,完全不会修改变量本身的值=是赋值运算符,作用是把右侧的值赋给左侧的变量,才会实际修改self.dx的数值
修复方案
把Q_Stop方法里的双等号改成单等号即可,修改后的代码如下:
def Q_Stop(self): self.dx = 0
额外排查建议
如果修改后还是没有效果,可以按以下顺序排查:
- 确认你的按键监听逻辑正确触发了
Q_Stop方法,比如在Pygame的事件循环中检测到pygame.K_DOWN的按下事件时,正确调用了玩家实例的该方法 - 确认
Q_Stop的执行顺序在所有修改dx的移动逻辑之后,避免刚把dx赋值为0,又被左右移动的逻辑重新赋值覆盖
内容的提问来源于stack exchange,提问作者mooman
相关产品推荐
相关产品推荐

