Проблема в том, что ваша переменная menuanimation
представляет собой список поверхностей , а не поверхность. Функция Pygame Surface.blit()
ожидает единственную поверхность (изображение) в качестве параметра, вы даете ему список. Вероятно, вы имеете в виду, чтобы нарисовать только одно изображение из списка, поэтому переменная списка должна быть проиндексирована.
Вероятно, вы хотите что-то вроде:
def menuanimations():
global animation_frame, menuanimation
if ( animation_frame >= len( menuanimation ) ): # Stay within limit
animation_frame = 0
win.blit( menuanimation[ animation_frame ], ( 0, 0 ) ) # Index into the list
animation_frame += 1
И, очевидно, вам нужно инициализация animation_frame=0