pygame飞机大战用精灵组(sprite)的层(layer)编写(一)BOSS的游戏基本框架的搭建

前言:BOSS系列的日志,建议在看了前面的入门知识后再看,没有一定的基础,这些看起来会很累。精灵组的层管理,确实太强大了。pygame提供了精灵sprite这个类来管理游戏的各个元素。例如子弹、飞机、爆炸效果(一连串动态图片)……等都可以是一个精灵,所有的精灵默认都在同一个层 0 层里。文档里说明:You can set the default layer through kwarg...
摘要由CSDN通过智能技术生成

前言:

BOSS系列的日志,建议在看了前面的入门知识后再看,没有一定的基础,这些看起来会很累。精灵组的层管理,确实太强大了。

 

pygame提供了精灵sprite这个类来管理游戏的各个元素。例如子弹、飞机、爆炸效果(一连串动态图片)……等都可以是一个精灵,所有的精灵默认都在同一个层 0 层里。文档里说明:You can set the default layer through kwargs using 'default_layer' and an integer for the layer. The default layer is 0.

为什么要用层这个概念来编写呢?

1.默认方式下,pygame绘制的顺序是精灵添加的顺序,例如先加载背景,再加载飞机,再加载子弹,那么绘制的顺序就是背景、飞机、子弹。如果先加载飞机、子弹,再加载背景,那么你将只能看到背景图。

很多软件里都有层这个概念,例如photoshop。pygame里的层号用数字表示,1、2、3、4……层,也可以是负数。层号越高,优先级越高,例如把背景层设置为 -1,飞机为 1,子弹为 2,那么不管你什么绘图顺序,子弹拥有在场景的顶层,不会被背景遮挡。

2.单个的精灵只能存在单张image,当向用动态的飞机,动态的子弹时,只能编写不是精灵的单独的类或者函数实现。维护起来很麻烦。而用层来管理就很轻松了。

3.既然pygame提供了层管理的这个概念,何不好好用用。

4.cocos2d 的python版里,也专门用了层来管理,好东西值得借鉴。

下面开始构建游戏的基本框架。

用类来

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值