#python
#питон
Вопрос:
Я уже нашел сайт, дающий информацию о том, как сделать анимацию спрайта. Ошибок много, поэтому некоторые из них исправлены, однако 1 ошибку исправить не удалось. Исправьте, пожалуйста!
def __init__(self): super(MySprite, self).__init__() self.images = [] self.images.append(pygame.image.load('mouse_level1.1.png')) self.images.append(pygame.image.load('mouse_level1.1.png')) self.images.append(pygame.image.load('mouse_level1.1.png')) self.index = 0 self.image = self.images[self.index] self.rect = pygame.Rect(5, 5, 150, 198) def update(self): self.index = 1 if self.index gt; len(self.images): self.index = 0 self.image = self.images[self.index]
Ошибка: self.изображение = self.изображения[self.индекс] Ошибка индекса: индекс списка вне диапазона
Ответ №1:
Первое, что (не имеет отношения к теме), вы загружаете одну и ту же картинку mouse_level1.1.png
несколько раз:
self.images.append(pygame.image.load(‘mouse_level1.1.png’))
В этом случае ваша анимация будет неподвижной и не изменится.
Во-вторых, в вашем массиве всего 3 элемента с индексами 0, 1 и 2. И ваш индекс превышает этот максимальный диапазон и не может быть равен len(self.images) (т. е. не может быть равен 3)
Обновите этот код:
if self.index gt; len(self.images): self.index = 0
Для
if self.index gt;= len(self.images): self.index = 0