除了精灵,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()
风雨兼程,前程可待!