pygame飞机大战用精灵组(sprite)的层(layer)编写(二)BOSS登场了

BOSS的编写方式是最复杂的,编写完这个,其他的飞机都是小菜。

先从BOSS的动态图形开始吧。

大部分的飞机一张从头到尾一张图片解决,也不觉得怎么样,但是BOSS就是得有BOSS的样子,自拍也比别人多,BOSS的形态就得多样化。

一般来说,BOSS的图片是好几种连续的动态图,后面的动态子弹也要用到,我们先干脆定义一个实现动态显示的类,一劳永逸。

精灵类的实现可以看前面的随笔

hthttps://blog.csdn.net/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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值