cocos creator学习15——物理引擎碰撞检测

物理引擎碰撞检测

在设置好碰撞分组和物理引擎后,并且在物理刚体组件中的Enabled Contact Listener 属性勾选上
组件
在每次刚体组件发生碰撞后,cocos就会搜索2个组件中的脚本,并且调用实现了的函数。

入口函数

入口函数 调用条件
onBeginContact 如果你的脚本中实现了这个函数,那么它将会在两个碰撞体开始接触时被调用
onEndContact 如果你的脚本中实现了这个函数,那么它将会在两个碰撞体停止接触时被调用
onPreSolve 如果你的脚本中实现了这个函数,那么它将会在接触更新时(碰撞持续)被调用。 你可以在接触被处理前根据他包含的信息作出相应的处理,比如将这个接触禁用掉。 注意:回调只会为醒着的刚体调用。 注意:接触点为零的时候也有可能被调用。 注意:感知体(sensor)的回调不会被调用
onPostSolve 如果你的脚本中实现了这个函数,那么它将会在接触更新完后被调用。 你可以在这个回调中从接触信息中获取到冲量信息

有三个参数onBeginContact:function(contact,selfCollider,otherCollider)
contact:可以通过其读取刚体的信息,例如速度,弹性等等
selfCollider:自身碰撞组件
otherCollider:与其碰撞的碰撞组件

sensor属性应用

继上次的例子我们做一个场景切换的试验
sensor
当碰撞组件设置了sensor,其将只进行碰撞检测,不再有物理刚体的特性,更像是一种气体,碰撞的物体只能感知到,却不能撞到。通常用于作为关卡入口,事件触发的使用,比如一个物体接触到后场景切换。
例如:
body2中挂载一个test脚本,并且设置为sensor,和静态刚体
测试
test:

onBeginContact:function(contact,selfCollider,otherCollider){
        cc.director.loadScene('hello');
    }

测试效果
效果

猜你喜欢

转载自blog.csdn.net/agsgh/article/details/79985631