您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx - JS - 碰撞检测

2017-03-25 02:28 387 查看
碰撞检测是游戏的一个重要组成部分,我们这里使用一种最简单的方法,就是获取精灵的矩形碰撞框。当然圆形的碰撞检测也比较简单,其他形状就复杂多了。
首先是如何获取矩形碰撞框:
var hBox=this.hero.getBoundingBox();//主角碰撞框
var eBox=this.enemy.getBoundingBox();//敌人碰撞框
其次如何判断他们发生了碰撞:
if(cc.rectIntersectsRect(hBox, eBox)){//判断主角与敌人是否发生碰撞
//这里写发生碰撞后要执行的代码
}
现在我们要让主角发射的子弹在击中敌人的时候能消失,好吧,有上面的基础,直接上代码吧。
新建一个函数update,在ctor函数中this.schedule(this.update);每帧调用update。

1 update:function(){
2     var i;
3     var hBox=this.hero.getBoundingBox();//主角碰撞框
4     var eBox=this.enemy.getBoundingBox();//敌人碰撞框
5     for(i in this._bullets){//遍历所有子弹
6         var bullet=this._bullets[i];
7         var bBox=bullet.getBoundingBox();//子弹碰撞框
8         if(cc.rectIntersectsRect(bBox,eBox)){//判断子弹与敌人是否发生碰撞
9             this._bullets.splice(i, 1);//从子弹数组中删除子弹
10             this.removeChild(bullet,true);//移除子弹
11         }
12     }
13 }


好了,debug,发现子弹打到敌人会消失了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: