欢迎光临散文网 会员登陆 & 注册

【飞机游戏】【Cocos】【P1】创建敌机及发射敌机子弹

2023-07-05 21:57 作者:Code有毒  | 我要投稿

0 上一章我们创建了能够滚动向下的背景对象,可操控任意移动的玩家飞机对象,点击屏幕即可发射的玩家子弹对象。本期我们将:

0.1 以不同的组合方式创建敌机对象。

0.2 创建敌机上自动发射的子弹对象。

 

1 以不同的组合方式创建敌机对象。

1.0 把敌机的模型和纹理对象绑定到敌机节点Plane02和Plane03上。(方法与Plane01的玩家飞机节点生成方式相同)。

1.1 在Assets的Plane文件夹下的enemy_plane脚本文件中设置敌机运动逻辑和敌机销毁逻辑的代码。

1.2 在Assets文件夹下的game_manager脚本中编写敌机生成逻辑的代码。我们将使用定时器来触发回调函数调整关卡数量,再根据3种不同的关卡数,生成对应不同组合类型的敌机对象。

1.3 三种敌机组合的方式及效果如下:

(1)敌机组合1为两种类型的敌机随机出现一架。

(2)敌机组合2为两种类型的敌机随机出现一字型队列。 

 

(3)敌机组合3为两种类型的敌机随机出现V字型队列。

 

2 创建敌机上自动发射的子弹对象。

2.0 上一张我们创建的子弹bullet01既可以做玩家的子弹素材,也可以做敌机的子弹素材。

2.1 我们在以不同组合的方式创建敌机时,需要根据我们创建的敌机组合来判断该敌机是否需要创建敌机子弹。目前我们的规则是组合1的敌机需要有敌机子弹,组合2、3的敌机不需要敌机子弹,所以我们在组合1逻辑里面敌机的set speed()接口中传入true来表示我们需要该敌机创建子弹对象。

2.2 我们在敌机脚本enemy_plane上根据是否创建敌机子弹的条件来创建敌机子弹的对像。如果需要创建子弹的话,将调用game_manager里的子弹实例化接口。

2.3 实例敌机子弹的对象后,需要调用子弹的脚本Bullet的子弹运动逻辑及子弹销毁逻辑。此时子弹的运动逻辑需分开考虑玩家的子弹和敌机子弹的运动轨迹(玩家子弹的运动方向为沿z轴负方向运动,敌机子弹为正方向)。

2.4 敌机子弹的生成效果如下:

2.5 最后让我们来看一下整体的效果如何。


 

2.6 从运行的结果来看,一字型排开的飞机数量庞大且乌泱泱的往下掉。说明我们的随机算法在敌机组合不多的情况下,得到的随机结果并不理想。敌机的大小比例和运行速度也不太合理。在之后的章节我们还需再对其做进一步的优化。


【飞机游戏】【Cocos】【P1】创建敌机及发射敌机子弹的评论 (共 条)

分享到微博请遵守国家法律