PyGame Python AttributeError: 'Player' object has no attribute 'rect'

Дедуля подарил мне книгу как создать 1 игру на Python. Я читал ее и работал, но на этапе создания спрайта на графическое окно я столкнулся с проблемой

Traceback (most recent call last):
  File "c:\Users\Tigran\Desktop\PY\Игра\ИГРА.py", line 47, in <module>
    player.rect.x = 0 #x
    ^^^^^^^^^^^
AttributeError: 'Player' object has no attribute 'rect

Сам код по ссылке ниже на Pastebin: https://pastebin.com/vywidjdT

Отрывок на который жалуется:

# Объекты

class Player(pygame.sprite.Sprite):
    #персонаж сам
    def _init_(self):
        pygame.sprite.Sprite._init_(self) # type: ignore
        self.images = []

        img = pygame.image.load(os.path.join("images","hero.png")).convert()
        self.images.append(img)
        self.image = self.images[0]
        self.rect = self.image.get.rect()


# Настройка
clock = pygame.time.Clock()
pygame.init()
world = pygame.display.set_mode([worldx, worldy])
player = Player() #создать спрайт
player.rect.x = 0 #x
player.rect.y = 0 #y
player_list = pygame.sprite.Group()
player_list.add(player)

Помогите пожалуйста.


Ответы (1 шт):

Автор решения: NTA

Ваш метод _init_ не вызывается, потому что Python не воспринимает его как магический. Для того чтобы метод был "магическим", у него должно быть 2 нижних подчеркивания: __init__:

class Player(pygame.sprite.Sprite):
    #персонаж сам
    def __init__(self):
        pygame.sprite.Sprite.__init__(self) # type: ignore (тут тоже надо 2 подчеркивания
        self.images = []

        img = pygame.image.load(os.path.join("images","hero.png")).convert()
        self.images.append(img)
        self.image = self.images[0]
        self.rect = self.image.get_rect()
→ Ссылка