cocos creator 内置了简单的碰撞检测系统,会根据当前节点下添加的碰撞组件进行碰撞检测。它可以应用在很多场景,比如可以用来判断子弹是否碰撞到敌人。
碰撞组件
矩形碰撞组件:
圆形碰撞组件:
多边形碰撞组件:
碰撞系统接口
cc.director.getCollisionManager().enabled = true; //开启碰撞检测,默认为关闭cc.director.getCollisionManager().enabledDebugDraw = true; //开启碰撞检测范围的绘制cc.director.getCollisionManager().enabledDrawBoundingBox = true; //开启碰撞组件的包围盒绘制
碰撞系统回调
当碰撞系统检测到有碰撞产生时,将会以回调的方式通知使用者,如果产生碰撞的碰撞组件依附的节点下挂的脚本中有实现以下函数,则会自动调用以下函数,
碰撞产生时调用:
onCollisionEnter: function(other,self){//self代表当前节点的的碰撞组件,other代表和self产生碰撞的其他碰撞组件var world = self.word; //碰撞组件在世界坐标系下的相关值都放在world这个属性里面cc.log(world);}
碰撞产生后,未结束前,每次碰撞计算后调用:
onCollisionStay: function(other,self){}
碰撞结束后调用:
onCollisionExit: function(other,self){}
world中的属性
矩形碰撞组件:
圆形碰撞组件:
多边形碰撞组件: