UnboundLocalError:分配前已引用局部变量“ block_bullet”

时间:2019-08-31 11:47:15

标签: python pygame

我试图用Pygame制作游戏,当实现一个功能,使角色在被按下的空格键上发射弹丸时,我遇到了一个错误:

File "/File/Path/Game.py", line 58 in draw_window 
    for block_bullet in block_bullet:
File "/File/Path/Game.py", line 123, in <module>
    draw_window()
UnboundLocalError: local variable 'block_bullet' referenced before assignment

我查看了其他试图找到答案的问题,但找不到解决方法

以下是该代码的google文档链接:

https://docs.google.com/document/d/1YPIv3hIKtbTSORd_e4yRCCP9gIo_tJL6kzhIQHiodLI/edit?usp=sharing

我想让'Blocky'角色在按下空格键时拍摄这些'block_bullets'

1 个答案:

答案 0 :(得分:0)

在Python中,任何试图在函数内修改变量的尝试都会导致该变量在函数本地。在draw_window函数中,代码行for block_bullet in block_bullet:试图修改block_bullet变量,其作用是引用未分配任何值的局部变量,从而产生该错误。 / p>

您需要将该函数中第一次使用block_bullet重命名为其他名称,从而得到代码for individual_bullet in block_bullet: indivdual_bullet.draw(win)。 (在我的示例中,任何程序中尚未使用的名称都可以替换individual_bullet。)