python - 在分配错误之前引用的局部变量
问题描述
我对编码非常陌生,并且正在尝试制作一款我可以称之为自己的游戏。我不明白错误的含义,但这是我的代码:
import pgzrun
import math
import random
WIDTH = 800 #5
HEIGHT = 600
CENTER_X = WIDTH/2
CENTER_Y = HEIGHT/2
CENTER = (CENTER_X, CENTER_Y)
FONT_COLOR = (221, 160, 221) #10
ozol = 0
game_over = False
ozolith = Actor("ozolith") #15
def draw():
screen.clear()
ozolith.draw()
draw_counters(ozol) #20
def place_ozolith():
ozolith.x = CENTER_X
ozolith.y = CENTER_Y
#25
def draw_counters(ozol):
screen.draw.text(str(ozol), fontsize=40, center=CENTER, color=FONT_COLOR)
def on_mouse_down(pos):
if ozolith.collidepoint(pos): #30
ozol += 1
place_ozolith
else:
quit()
#35
place_ozolith
pgzrun.go()
这是错误消息
Traceback (most recent call last):
File "C:\Program Files\Python38\python-games\GameCraft\GameCraft.py", line 38, in <module>
pgzrun.go()
File "C:\Program Files\Python38\lib\site-packages\pgzrun.py", line 31, in go
run_mod(mod)
File "C:\Program Files\Python38\lib\site-packages\pgzero\runner.py", line 113, in run_mod
PGZeroGame(mod).run()
File "C:\Program Files\Python38\lib\site-packages\pgzero\game.py", line 217, in run
self.mainloop()
File "C:\Program Files\Python38\lib\site-packages\pgzero\game.py", line 247, in mainloop
self.dispatch_event(event)
File "C:\Program Files\Python38\lib\site-packages\pgzero\game.py", line 172, in dispatch_event
handler(event)
File "C:\Program Files\Python38\lib\site-packages\pgzero\game.py", line 164, in new_handler
return handler(**prepped)
File "C:\Program Files\Python38\python-games\GameCraft\GameCraft.py", line 31, in on_mouse_down
ozol += 1
UnboundLocalError: local variable 'ozol' referenced before assignment
一旦我单击卡在左上角的图像,就会发生这种情况。
解决方案
ozol += 1
相当于
ozol = ozol + 1
但ozol
没有初始值,因此错误。
推荐阅读
- java - Android 应用不会写入 Firebase 实时数据库
- mysql - 如何将 memsql 用于组合多个表的报告
- hibernate - 使用 H2/Hibernate/C3P0 模拟瓶颈
- javascript - 如何在给定数据范围的情况下绘制半圆形轮廓 SVG 并用 Javascript 填充?
- xml - PowerShell - XML - 将多个元素附加到远程桌面连接管理器文件中的节点
- .net - 使用 .Net core IDX20803 通过 OKTA 进行身份验证:无法从以下位置获取配置:“[PII 已隐藏]”
- r - 在 R 中迭代多个回归模型和数据子集
- javascript - Touch.target 与 Event.target
- r - 如何将图例的顺序与条形图中的顺序相匹配?
- html - 如果您以编程方式更改 [checked] 值,则 (change) 事件不会触发