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()