python - 为什么我在while循环中将变量设置为false会给我错误而不是停止循环
问题描述
我正在创建我的第一个 Python 游戏,并尝试执行暂停/取消暂停游戏功能。我创建了一个通过声明pause
设置的全局变量false
。但是当我按下分配给我的暂停功能的按钮时,程序给了我这个错误:
local variable 'pause' referenced before assignment
这paused()
是按钮的功能分配:
if event.key == pygame.K_p:
pause = True
paused()
这是我的paused()
功能:
def paused():
while pause:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_m:
pause = False
pygame.display.update()
clock.tick(15)
#gameDisplay.fill(white) `
解决方案
pause
是 main 的局部变量,因此必须将其发送到函数。此外,还有一些识别错误。这是固定版本:
if event.key == pygame.K_p:
pause = True
paused(pause)
def paused(pause):
while pause:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_m:
pause = False
pygame.display.update()
clock.tick(15)
#gameDisplay.fill(white) `
推荐阅读
- python - 在 Kivy 中实现计时器时遇到问题
- python - 在 Pycharm 中无法添加 conda 环境
- java - @PostConstruct 注解的方法不会在 springboot 应用程序启动时启动
- json - 将 Json 嵌套到 CSV PowerShell
- android - 需要从 Aadhar 扫描数据中修剪 xml 内容
- node.js - 分配具有唯一 ID 的 WebSocket 和 net.Socket
- c# - 使用 LINQ 按键收集选择数据的最快方法是什么?
- javascript - 如何提高 fetch api JSON 下载速度或加载图标?
- amazon-web-services - 如果 EKS 工作程序节点位于私有子网中,则 ELB 服务中断
- python - Python:选择尖括号之间的文本