在函数Python中评估时父对象变量抛出错误

2024-09-28 05:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在做一个Pygame游戏,我在做播放器。播放器是基类的子类,它具有对象、精灵和frameEvent函数存根的x/y。我正在制作播放器的frameEvent(每帧执行一次),它如下所示:

def frameEvent(self):

    # Get the currently pressed keys
    keysPressed = pygame.key.get_pressed()

    # Check if we should move the player
    if keysPressed[pygame.K_LEFT]:
        x += 5
    if keysPressed[pygame.K_RIGHT]:
        x += 5
    if keysPressed[pygame.K_UP]:
        y += 5
    if keysPressed[pygame.K_DOWN]:
        y += 5

但是,;当我运行它时,当我按下一个键时会得到:

Traceback (most recent call last):
  File "E:\Fun Stuff\Python Stuff\Python projects\SimpleEngine\Main.py", line 68, in <module>
    main()
  File "E:\Fun Stuff\Python Stuff\Python projects\SimpleEngine\Main.py", line 57, in main
    ObjPlayer.frameEvent()
  File "E:\Fun Stuff\Python Stuff\Python projects\SimpleEngine\oPlayer.py", line 31, in frameEvent
    x += 5
UnboundLocalError: local variable 'x' referenced before assignment

我不太清楚如何处理这件事。在做了Codeacedemy Python之后,我两周前才开始做Python,所以我只知道基本语法(虽然我知道Gamemaker的内置语言:GML(非常熟悉)

非常感谢您对上述问题的任何帮助


Tags: theinpyifline播放器pygamefile
1条回答
网友
1楼 · 发布于 2024-09-28 05:20:39

如果x是一个实例变量,请使用self.x引用它。对y也一样。请注意,必须将它们初始化为+=运算符才能正常工作,因为+=使用左侧操作数的当前值来计算新值

相关问题 更多 >

    热门问题