cocos creator 学习(八)刚体、碰撞组件、物理组件小结

1、如何移动刚体?

2、碰撞组件和物理碰撞组件有什么不同?

3、三种物理碰撞组件有什么不同?

4、物理碰撞组件如何对碰撞回调?

5、碰撞组件如何对于碰撞回调?


1、如何移动刚体?

当我们的一个节点上有一个刚体,我们要进行移动。一般我们都会通过节点的setPosition进行移动,

但是刚体不会被影响,不管是Static、还是Dynamic还是Kinematic都不会被影响

我们可以通过

1、瞬时动作cc.place来进行移动而且不会影响刚体原本的运动轨迹

2、Action的所有动作。cc.moveBy;cc.moveTo;等等


2、碰撞组件和物理组件有什么不同?

碰撞组件没有类型之分,只要相交就会发生碰撞事件,如果不对碰撞进行处理,那就没有任何影响。

物理碰撞组件分类型,因为他们先会绑定刚体。如果刚体类型不同则会有不同的效果。

和Dynamtic类型刚体绑定的PhysicsBoxCollider会受重力影响,可以设置速度

和Static类型刚体绑定的物理组件,不会受重力影响,不可以设置速度,可以通过设置位置让其移动

和Kinematic类型刚体绑定的物理组件,不受重力影响,可以设置速度

           


3、三种物理组件有什么不同?

             绑定了Dynamic(运动)类型的物理组件不能穿透绑定了Static(静态)类型的物理组件

            绑定了Dynamic类型的物理组件不能穿透绑定了Kinematic类型的物理组件

            Static和Kinematic不会触发碰撞事件,Static和Static;Kinematic和Kinematic不会触发碰撞事件;


4、物理组件如何进行碰撞回调?

首先RigidBody要开启碰撞监听

然后当前节点下有如下函数

在函数碰撞体刚开始接触时调用一次

onBeginContatct:function(contact,selfCollider,otherCollider){}

在两个碰撞体结束接触时被调用一次

onEndContact:fucntion(contact,setCollider,otherCollider){}

每次要处理碰撞体接触逻辑是被调用

onPreSolve:function(contact,selfCollider,otherCollider){}

每次处理完碰撞体接触时被调用

onPostSolve:fucntion(contact,selfCollider,otherCollider){}


5、碰撞组件的回调

var manager = cc.director.getCollisionManager();
manager.enabled = true;
脚本里面先开启碰撞监听,因为默认是关闭

然后有以下函数:

//当碰撞产生时调用

onCollisionEnter:function(other,self){


}

//在碰撞产生后,在碰撞结束前,每次计算完碰撞结果后调用

onCollisionStay:function(other,self){}

//当碰撞结束后调用

onCollisionExit;function(other,self){}


  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值