首页 > 解决方案 > 为什么我在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)   `

标签: pythonpython-3.x

解决方案


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)   `

推荐阅读