У меня при запуске вылезает эта ошибка: 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 шт):
stay = pygame.image.load(r'C:\Users\[...].png'),
^^^ это кортеж!
Лишняя запятая в Питоне превращает любое значение в кортеж. То есть теперь у вас в переменной stay
кортеж из одного элемента (да, такое тоже бывает):
stay = (Surface, )
Скобки в Питоне для обозначения кортежа желательны, но не обязательны! Именно запятая либо между элементами кортежа, либо в конце выражения, делает кортеж кортежем, а вовсе не скобки, как можно было подумать, видя кортежи в примерах кода на Питоне.
Так что просто уберите запятую в конце и всё.