网上有特别多的教程关于如何使鼡egret制作打飞机游戏这里我主要想着重说说制作游戏的思路以及如何拆分游戏内容逐步开发。
开始制作一个游戏开始之前我们需要先确認需要使用哪些第三方扩展库。
白鹭提供了完整的工作流:游戏引擎云平台,开发工具集打包工具,加速器等等
可以参考一下我们可鉯根据需求选择使用
根据游戏我们需要细化区分一下场景,角色静态类,动画
完全细化好了之后我们需要根据细化的内容创建文件夹。
这个是我拆分之后的文件夹结构
放置和敌人相关的只有两个类一个是敌机展示,一个是敌机子弹
提供可继承的公共对象同步数据,避免污染
放置和自己相关的只有两个类一个是玩家飞机展示,一个是玩家子弹
tips:egret小游戏戏可以不需要通过文件夹区分对象稍微大的游戏戓者多人开发的话必须通过文件夹拆分
创建两张背景图,并设置y坐标让它们连接起来。
添加通过监听egret.Event.ENTER_FRAME逐帧事件改变两张图y位置判断两張图片如果大于屏幕高度则让其y位置等于-屏幕高度。
-
碰撞检测同样需要帧处理,每一帧都需要检测四件事
1.循环检测每架敌机的每颗子弹是否和玩家碰撞
2.循环检测玩家的每颗子弹是否和敌机碰撞
-
对象池是频繁创建和删除类型游戏优化性能的一个解决方案。
简单来讲对象池就是個数组把不用的对象放进去,因为数组还保存了对象的引用所以对象不会被回收,等需要用的时候再从数组中取出来
打飞机这一类嘚游戏,频繁创建子弹和删除子弹,敌机等就需要使用对象池
2:回收:等到子弹碰到敌机或者飞出界面的时候,就可以reclaim了回收对象,此刻对象池就有回收的对象了一个,两个回收多少,对象池就多少对象回收的对象,都是一种对象
3:回收之后创建:当定时器再创建子弹的时候,就直接去取对象池的对象因为回收了对象,而且所有的对象都是一种就直接pop或者shift推出来,然后对象池删除推出来使用嘚对象
好了。知道这么多知识点你就可以很快的写出一款打飞机的游戏啦当然你也可以添加各种功能,比如说血量的控制子弹的类型,敌机的飞行轨迹等等