我试图用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'
答案 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
。)