首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在引导错误之前引用局部变量

在引导错误之前引用局部变量
EN

Stack Overflow用户
提问于 2020-03-21 05:43:16
回答 2查看 43关注 0票数 0

我对codding非常陌生,我正在尝试做一个我可以称之为自己的游戏。我不明白这个错误意味着什么,但这是我的代码:

代码语言:javascript
复制
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()

这是错误消息

代码语言:javascript
复制
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

当我点击左上角的图片时,就会发生这种情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-21 05:52:34

代码语言:javascript
复制
    ozol += 1

等于

代码语言:javascript
复制
    ozol = ozol + 1

但是ozol没有初始值,因此出现了错误。

票数 0
EN

Stack Overflow用户

发布于 2020-03-21 05:49:23

试着把臭氧变成全球性的

代码语言:javascript
复制
    global ozol
    ozol = 0

将全局b4放在您定义的臭氧中,看看它是否有效。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60784835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档