【Cocos入门】物理系统(物理碰撞)

在这里插入图片描述

物理碰撞

物理引擎默认是关闭状态以节省资源开销。开启方法和之前的普通碰撞类似:cc.director.getPhysicsManager().enabled = true但有一个区别,物理引擎的开启必须放在onLoad函数内运行,否则不生效。
物理碰撞组件也同样具有碰撞回调函数。但如果要使用回调函数,则必须开启刚体的 EnableContact Listener 或者 在代码中写rb.enableContactlistener = true在这里插入图片描述

物理碰撞组件有4个回调函数:

  • onBeginContact(contact,self other)–当碰撞体开始接触时被调用一次
  • onEndContact(contact,self other)–当碰撞体结束接触时被调用一次
  • onPreSolve(contact,self other)–每次将要处理碰撞体接触逻辑时被调用
  • onPostSolve(contact,self other)–每次处理完成碰撞体接触逻辑时被调用

执行顺序:onBeginContact > onPreSolve > onPostSolve > onEndContact
上述回调函数的参数解释如下:
contact: cc.PhysicsContact 碰撞信息
self: cc.PhysicsCollider 自己
other:cc,PhysicsCollider 碰撞的另一个物体
关于物理碰撞更多详情

示例:

    manager:cc.PhysicsManager;

    onLoad(){
    
    
        this.manager=cc.director.getPhysicsManager();
        this.manager.enabled = true;
    }

    onBeginContact(){
    
    
        console.log("触发");
    }

勾选Sensor,物体之间不会发生碰撞,依旧触发碰撞回调函数

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45961836/article/details/136111722