Ошибка при ссылке на атрибуты, установленные при инициализации - PullRequest
0 голосов
/ 04 октября 2018

Я делаю шутер от третьего лица, и у меня есть объект игрока для игрока.Я устанавливаю значения 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 голосов
/ 04 октября 2018

обратите внимание, что def __init__() должно иметь только два подчеркивания до и после слова init.Кроме того, я думаю, что вы должны правильно сделать отступ для блока def __init__() в class Player(), отступа в итерации for для функции move и то же самое для ваших if условий.

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

/ OGS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...