BOSS的编写方式是最复杂的,编写完这个,其他的飞机都是小菜。
先从BOSS的动态图形开始吧。
大部分的飞机一张从头到尾一张图片解决,也不觉得怎么样,但是BOSS就是得有BOSS的样子,自拍也比别人多,BOSS的形态就得多样化。
一般来说,BOSS的图片是好几种连续的动态图,后面的动态子弹也要用到,我们先干脆定义一个实现动态显示的类,一劳永逸。
精灵类的实现可以看前面的随笔
hthttps://blog.youkuaiyun.com/hailler1119/article/details/88769971
根据要求抽象出来了一些基本的函数,对应有多张图片组成的动态图,用,load_images加载到 images ,单张图片切割成多张的,用load_image()加载到images 在调用类的update里,获取下当前的图片get_current_image,就会动态显示了。
""" 动态图的加载类
用两种方式实现,一种是加载多张图片,一种是加载一张图片,按要求进行切割
都是把图像存到 images 的列表里,每次取两张,取完后从头开始
精灵类的self.image 是唯一的,但动态背景交接过程会同时存在两张image,无法使用精灵
使用方法:在这个里的初设函数里直接加在images列表,也可以在主屏幕的函数里,用load_images或者load_image来加载
"""
import pygame
from pygame.locals import *
from setting import *
class Animation(object):
def __init__(self):
self.image = None
self.images = []
self.frame = 0
self.first_frame = 0
self.last_frame = 0
self.columns = 1
self.last_time = pygame.time