Как исправить ошибку, связанную с созданием анимации?

#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