IndexError: список индексов вне диапазона для шагающего символа - PullRequest
1 голос
/ 01 октября 2019

Я пытаюсь заставить персонажа двигаться, но когда я прохожу определенное расстояние, появляется ошибка

Я не могу найти жизнеспособное решение, поэтому я попробовал несколько вещей сам

global walkCount
win.blit(bg, (0, 0))
if walkCount + 1 >= 27:
    walkCount = 0
if left:
    win.blit(walkLeft[walkCount//3], (x, y))
    walkCount += 1
    pygame.display.update()
elif right:
      win.blit(walkRight[walkCount//3], (x,y))
      walkCount += 1
      pygame.display.update()
File "C:\Users\drfur\Desktop\Game\game.py", line 166, in <module>
   rwg()

File "C:\Users\drfur\Desktop\Game\game.py", line 55, in rwg
   win.blit(walkRight[walkcount//3], (x,y))

IndexError: list index out of range

это происходит как слева, так и справа

1 Ответ

1 голос
/ 01 октября 2019

Максимум walkCount равен 26. Результат 26//3 равен 8. Вы должны убедиться, что списки walkLeft и walkRight имеют 9 элементов.

Индекс списка изошибки диапазона можно избежать, рассчитав напоминание о делении по длине списка. Остаток может быть вычислен оператором по модулю (%). См. Операторы . Например:

if left:

    i = (walkCount//3) % len(walkLeft)
    win.blit(walkLeft[i], (x, y))

elif right:

    i = (walkCount//3) % len(walkRight)
    win.blit(walkRight[i], (x,y))

walkCount += 1
pygame.display.update()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...