引用初始化中建立的属性时出错

时间:2018-10-04 01:50:12

标签: python object attributes pygame

我正在制作第三人称射击游戏,并且有一个玩家对象。我在像这样的初始化中设置x和y值

class Player():
def ____init____(self):
    self.x = 500
    self.y = 300

,然后在涉及运动的后续函数中引用它们:

    def move(self):
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT and self.x < 720:
                self.x += 2.5
            if event.key == pygame.K_LEFT and self.x > 280:
                self.x -= 2.5
            if event.key == pygame.K_UP and self.y > 80:
                self.y -= 2.5
            if event.key == pygame.K_DOWN and self.y < 520:
                self.y += 2.5

运行程序时,出现错误

AttributeError: 'Player' object has no attribute 'x'

有人可以解释为什么我得到错误吗?我在初始化中定义了x,所以我不知道为什么。预先感谢。

1 个答案:

答案 0 :(得分:2)

请注意,def __init__()单词前后必须只有两个下划线。另外,我认为您必须在init下适当缩进def __init__()块,在class Player()函数下缩进for迭代,并且对move同样条件。

if

/ ogs