所以我在做一个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(非常熟悉)
非常感谢您对上述问题的任何帮助
如果
x
是一个实例变量,请使用self.x
引用它。对y
也一样。请注意,必须将它们初始化为+=
运算符才能正常工作,因为+=
使用左侧操作数的当前值来计算新值相关问题 更多 >
编程相关推荐