如何使此功能正常工作?有没有好的替代品?

position=0
score=0
eggY=300
eggX=0
def egglg():
    while True:
        global eggX
        global eggY
        if eggX<330:
            eggX+=5
            eggY+=0.8
        elif eggX>=330:
            eggY=eggY+2
            if eggY>450:
                terminate()
            elif eggY<450 and eggY>350 and position ==1:
                score+=1
                return
#rest of my code, with chaning position to 1 when i press w

egglg()

它以某种方式返回0

最佳答案

由于要写入全局变量eggXeggYscore,因此必须声明所有3个变量global

position=0
score=0
eggY=300
eggX=0

def egglg():
    global eggX, eggY, score

    # [...]


注意,变量position只是读取的,因此没有必要将其声明为golabal

关于python - 全局分配前引用的局部变量不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58863907/

10-09 06:57