cocos creator学习11——碰撞检测系统
2018-03-28 11:14
1416 查看
碰撞分组
cocos creator中新版本中的碰撞分组功能,能够使开发者更方便地管理碰撞检测这次我使用飞机大战的项目进行详细介绍
点击编辑可以管理碰撞组件的检测
cocos引擎会根据碰撞分组配对,进行相应的检测
如上图,子弹组会与enemy组进行碰撞检测,hero会与enemy组进行碰撞检测
为节点添加碰撞检测组件
可以选择Editing属性对碰撞区域进行编辑
开启碰撞检测
cc.director.getCollisionManager().enabled=true;这是一个全局属性,开启后就代表碰撞检测组件可以进行检测了
cc.director.getCollisionManager().enabledDebugDraw = true;绘制碰撞区域
碰撞事件响应函数
开启了碰撞检测后,每一次碰撞组的碰撞就会在节点的组件中查找碰撞响应函数响应函数 | 响应事件 |
---|---|
onCollisionEnter:function(other,self) | 碰撞开始事件(第一次接触) |
onCollisionStay:function(other,self) | 碰撞持续事件(组件相交) |
onCollisionExit:function(other,self) | 碰撞结束事件(离开的一瞬间) |
self参数是指自身的碰撞器组件
实战测试
1、分组
2、开启碰撞检测
onLoad() { cc.director.getCollisionManager().enabled=true; // cc.director.getCollisionManager().enabledDrawBoundingBox = true; //开启绘制区域 cc.director.getCollisionManager().enabledDebugDraw = true; cc.log(this.score); },
3、编写碰撞事件函数
由于我们只需要子弹碰到敌机一下就可以了,因此只使用了onCollisionEnter响应函数
enemyfly.js
onCollisionEnter:function(other,self){ //碰撞则播放爆炸动画 if (other.node.group != 'bullet'){ cc.log("bullet"); return ; } if(other.node.group == 'bullet') //检测碰撞组 { other.node.removeFromParent(); this.hp -= 1; if(this.hp == 0 ) { // enemyReq.add_Score(); this.node.group = 'default'; //防止播放爆炸动画时继续检测导致神奇的事情发生 var en = this.node.getComponent(cc.Animation); var na = this.node.name; en.play(na+"_des"); //播放动画 en.on('finished',function(e){ this.node.removeFromParent(); // var score = this.node.getComponent(cc.Label); },this); } } },
游戏效果
相关文章推荐
- MFC学习笔记之三(粒子系统+怪物简单AI+碰撞检测)
- AndEngine学习:PhysicsCollisionFiltering(有过滤器的碰撞检测)
- 学习笔记 11_Cocos Creator_常用代码
- 港科VINS-Mono系统学习(5) 闭环检测
- 学习笔记11——Linux系统重要子目录及内容小结
- osg学习第三篇:碰撞检测(一)
- CocosCreator学习6:碰撞系统
- Struts2系统学习(11)多文件上传
- 11. 碰撞检测和收集物品:如何使用cocos2d制作基于tiled地图的游戏:第二部分
- 斯坦福新深度学习系统 NoScope:视频对象检测快1000倍
- ucos II 系统学习之------任务堆栈检测
- 【学习17】Box2D创建物体和碰撞检测
- Asp.Net Ajax 学习笔记11 Microsoft AJAX Library中的面向对象类型系统
- Linux学习笔记11-挂载文件系统
- 11.继续学习之交通灯管理系统
- unity3d刚体和碰撞检测学习一:新建一个plane和一个sphere,却碰撞检测失败的问题
- 【Cocos Creator实战教程(7)】——猴子摘月亮(平台动作,碰撞检测详解)
- [AndEngine学习教程] 第10节 box2D 物理碰撞系统
- AndEngine学习:CollisionDetectionExample(碰撞检测)
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第七步--物理碰撞检测(2)--主角吃金币