除了精灵,Pygame也可以这样加载gif图片

https://github.com/piantado/kelpy/blob/master/kelpy/GIFImage.py

主要创意来源是这个,相比较使用精灵,这个更加便于上手,但是版本过于老旧,有些地方可能运行不太顺畅了
这个代码本身也比较臃肿,核心思想是将gif换成帧后输出。
所以有一些的地方必须要改动一下

比如说库的改动有
from PIL import Image
另外因为是逐帧的所以说需要不断覆盖原来的画面
screen.fill((255, 255, 255))
当然还有方法是指覆盖部分的背景,或者直接绘制图形
screen.blit(background, (word_pos, countline), pygame.Rect(word_pos, countline, 30, font_height))#这里用部分背景填涂的方法删除

注意最后面四个参数的意义是不一样的,前面两个是相对于屏幕的绘制左上角坐标,后面两个是绘制的大小


这里给出我实际运用时对main的变动
def main():
    pygame.init()
    screen = pygame.display.set_mode((640, 480))

    hulk = GIFImage("haimian1.gif")
    trick_pic = pygame.image.load("haimian1.gif").convert()  # 右下角搞笑动图
    rect_hm = trick_pic.get_rect()
    print(rect_hm)

    while 1:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                return
        screen.fill((255, 255, 255))
        hulk.render(screen, (50, 0))
        hulk.render(screen, (640-rect_hm[3], 480-rect_hm[4]))
        pygame.display.flip()
风雨兼程,前程可待!
原文地址:https://www.cnblogs.com/xingnie/p/15269808.html