Я работаю над игрой в Pygame и хотел бы запрограммировать цикл ходьбы.Как мне это сделать?
Я делаю эту игру для игрового джема и повторно использую некоторый код из учебника, через который я прошел.Код должен быть откорректирован настолько, насколько это необходимо, но мой код не будет работать.
def draw(self, win):
pygame.draw.rect(win, (255, 0, 0), [self.x, self.y, self.width, self.height])
if self.walkCount + 1 >= 20:
self.walkCount = 0
walkDown = [pygame.image.load("sprites/MaleMCWalkF0.png"),
pygame.image.load("sprites/MaleMCWalkF1.png"),
pygame.image.load("sprites/MaleMCWalkF2.png"),
pygame.image.load("sprites/MaleMCWalkF3.png")]
walkRight = []
walkLeft = []
walkUp = []
if not(self.standing):
if self.left:
win.blit(walkLeft[self.walkCount//4], (self.x, self.y))
self.walkCount += 1
elif self.right:
win.blit(walkRight[self.walkCount//4], (self.x, self.y))
self.walkCount += 1
elif self.down:
win.blit(walkDown[self.walkCount//4])
else:
if self.right:
win.blit(walkRight[0], (self.x, self.y))
else:
win.blit(walkDown[0], (self.x, self.y))
В результате должна получиться анимация ходьбы, где каждый кадр длится 4 кадра.Однако код возвращает ошибку индекса:
File "/home/runner/classes.py", line 35, in draw
win.blit(walkRight[self.walkCount//4], (self.x, self.y))
IndexError: list index out of range
Как это исправить?