Я продолжаю получать это сообщение об ошибке при попытке запустить мой код в pygame, оно позволяет мне открыть окно, но когда я пытаюсь ввести клавишу направления, мне выдается этот код ошибки.
in redraw_game_window
win.blit(walk_right[walkcount//3], (x, y))
TypeError: argument 1 must be pygame.surface.Surface, not str
выдает ошибку кода win.blit(walk_right[walkcount//3], (x, y))
который находится под оператором elif right, но я предполагаю, что он будет иметь ту же проблему в операторе if left, поскольку они идентичны
def redraw_game_window():
global walkcount
#win.blit(bg, (0, 0))
win.fill(GREY)
if walkcount + 1 >= 60:
walkcount = 0
if left:
win.blit(walk_left[walkcount//3], (x, y))
walkcount += 1
elif right:
win.blit(walk_right[walkcount//3], (x, y))
walkcount += 1
else:
win.blit(idle_down, (x, y))
pygame.display.update
в другом проекте у меня практически идентичный код, и он работает отлично, я сравнил два проекта, чтобы увидеть какие-либо различия, но не могу найти решение, я новичок в pygame и кодировании в целом, поэтому я ценю любую помощь, которую могу получать.
определение ходьбы влево — это спрайт-анимация для ходьбы влево, и все это одна линия.
walk_left = [pygame.image.load('art/Knight/move/KnightL1.png'), ('art/Knight/move/KnightL2.png'), ('art/Knight/move/KnightL3.png'), ('art/Knight/move/KnightL4.png')]
Я добавил это в конец вопроса






Ошибка здесь:
walk_left = [pygame.image.load('art/Knight/move/KnightL1.png'), ('art/Knight/move/KnightL2.png'), ('art/Knight/move/KnightL3.png'), ('art/Knight/move/KnightL4.png')]
Только первый элемент — это вызов pygame.image.load, остальные элементы в вашем списке — это просто строки.
Если pygame.image.load('art/Knight/move/KnightL1.png') — это способ загрузки изображения, вам придется сделать это для каждого элемента в вашем списке, например:
walk_left = [pygame.image.load('art/Knight/move/KnightL1.png'), pygame.image.load('art/Knight/move/KnightL2.png'), pygame.image.load('art/Knight/move/KnightL3.png'), pygame.image.load('art/Knight/move/KnightL4.png')]
Покажите нам определение
walk_left.