《飞机大战(一)》介绍摄像机实现地图的滚动和子弹组件的设计;在此基础上《飞机大战(二)》增加了子弹的角度直线发射以及动态角度更新能力,用于实现如:散弹、螺旋扫射等华丽的子弹表现。
本次教程分享的是 Cocos Creator 引擎碰撞检测系统,使玩家的子弹能够击中敌人,让我们的游戏可以真正玩起来!
子弹预制件
子弹发射器 LineEmitter,用于控制子弹的飞行路径,子弹自身的表现则由预制体 Bullet 呈现,看下图:
Bullet 预制体设计了两层,其中 image 节点是子弹的纹理图片,为什么没有直接在 Bullet 节点上挂 Sprite 呢?
这里考虑的是子弹有可能是静态图片,还有可能是动画序列帧(比如带雷电属性的子弹、火焰喷射器),为了增强灵活性,因此将子弹的表现放在了 Bullet 节点的内部。
子弹组件
在 Bullet 子弹预制体上挂载一个同名的 Bullet 组件脚本,
- 设置子弹的伤害属性,
- 监听碰撞事件做相应的处理
看下面代码:
let Bullet = cc.Class({
extends: cc.Component,
properties: {
damage