У меня при запуске вылезает эта ошибка: TypeError: argument 1 must be pygame.surface.Surface, not tuple, подскажите как ее исправить?

У меня при запуске вылезает эта ошибка: TypeError: argument 1 must be pygame.surface.Surface, not tuple, подскажите как ее исправить? ошибка не вылазит если код вот такой:

keys = pygame.key.get_pressed()

    if keys[pygame.K_a]:                     
            screen.blit(walk_left[player_anim_count(player_x,player_y))
    elif keys[pygame.K_d]:            
        screen.blit(walk_right[player_anim_count(player_x,player_y))

а если добавить вот это то вылезает ошибка

else:
        screen.blit(stay, (player_x, player_y))

пробовал вот это, не помогло

        else:
            screen.blit(stay, (150, 560))

введите сюда описание изображения

вот тут переменная stay

stay = pygame.image.load(r'C:\Users\Daniil Horosh\PycharmProjects\pythonProject\images\195f7dd9-no-bg-HD(carve.photos).png'),

а тут player_x и player_y

player_x = 150
player_y = 560

помогите починить кстати при запуске должна появляться переменная stay в позиции player_x, player_y вот по этой ссылке весь мой код на git hub https://gist.github.com/dcfcsdcasdsdfsd/51b0e4b50a5d915a4ecbe97c62c5d481


Ответы (1 шт):

Автор решения: CrazyElf
stay = pygame.image.load(r'C:\Users\[...].png'),
                                              ^^^ это кортеж!

Лишняя запятая в Питоне превращает любое значение в кортеж. То есть теперь у вас в переменной stay кортеж из одного элемента (да, такое тоже бывает):

stay = (Surface, )

Скобки в Питоне для обозначения кортежа желательны, но не обязательны! Именно запятая либо между элементами кортежа, либо в конце выражения, делает кортеж кортежем, а вовсе не скобки, как можно было подумать, видя кортежи в примерах кода на Питоне.

Так что просто уберите запятую в конце и всё.

→ Ссылка