python - pygame中火速限制器的问题
问题描述
我目前正在用 python 制作游戏,但是当我尝试限制射速时,问题就开始了。应该在第一次拍摄后每隔一按拍摄一次的代码会完全阻止拍摄,所以我检查了变量是如何变化的,并且它以某种方式保持不变,这看起来很奇怪。我试图用谷歌搜索它,但我什至很难用谷歌的正确语言表达我的问题。这是代码:
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and igralec.fire_rate % 2 == 1:
strel.play()
print(igralec.fire_rate)
igralec.fire_rate += 1
if igralec.fire_rate == 6:
igralec.fire_rate = 1
解决方案
除非您在其他地方增加/更改igralec.fire_rate
,否则此代码无法正常工作。我假设您没有在其他地方更改它,或者您将包含该代码以便可以诊断问题。
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and igralec.fire_rate % 2 == 1:
strel.play()
print(igralec.fire_rate)
igralec.fire_rate += 1
if igralec.fire_rate == 6:
igralec.fire_rate = 1
如果 ,你只能进入这个街区igralec.fire_rate % 2 == 1
,所以igralec.fire_rate
必须是奇数。然后它递增igralec.fire_rate
为偶数,并且永远不能再次进入这个代码块。
也许你想要这样的东西:
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
if igralec.fire_rate % 2 == 1:
strel.play()
print(igralec.fire_rate)
igralec.fire_rate += 1
if igralec.fire_rate == 6:
igralec.fire_rate = 1
所以它只会在奇数strel.play()
时调用,但在按下空格键时igralec.fire_rate
仍会增加或管理。igralec.fire_rate
推荐阅读
- php - 修改多维数组中的值并将其作为新的键值对推送
- github - Github Markdown 用于不同的字体颜色
- javascript - 单击 JavaScript 中的嵌套元素
- vue.js - 导航时嵌套的Vue路由器视图转换没有反应
- c++ - 如何在全局范围内添加包含路径到clang
- java - 很少有 kafka 分区没有分配给任何 flink 消费者
- next.js - 当浏览器禁用 js 时 styled-jsx 不渲染样式(Rollup 和 styled-jsx)
- pytorch - 我可以使用自动转换(自动混合精度)加速 PyTorch 中的推理吗?
- nuget - Push nuget package to Github Package Registry:响应提前结束。发送请求时出错
- nginx - NGINX on URL 加载静态内容