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()