Creator案例开启碰撞引擎设置分组和分组匹配添加碰撞

Creator案例开启碰撞引擎设置分组和分组匹配添加碰撞

前言

在游戏开发中音乐,我们经常需要判断两个物体是否发生碰撞游戏开发碰撞检测书籍,所以 Cocos Creator 为您提供了碰撞检测系统来简化您的开发。下面我们来看看如何使用碰撞检测系统。

1. 碰撞检测系统

1:创作者有碰撞检测系统+物理碰撞系统游戏图片素材,是两个独立的模块;

2:对创作者游戏世界中的物体进行分组,指定节点的分组方式和分组的碰撞矩阵;

3:获取代码中节点的分组和分组索引:group和groupIndex;

4:为每个节点添加碰撞检测区域 --> Collider(物体形状)游戏开发碰撞检测书籍,编辑碰撞区域;

5:代码开启碰撞检测系统(默认是关闭碰撞检测),开启和关闭碰撞检测的调试:

var manager = cc.director.getCollisionManager(); //
    manager.enabled = true; // 开启碰撞
    manager.enabledDebugDraw = true; // 允许绘制碰撞的区域

6:碰撞检测功能响应。发生碰撞检测的节点会调用该节点上所有组件的统一三个接口:

onCollisionEnter: function (other, self) // 开始
 onCollisionStay: function (other, self)  // 持续
 onCollisionExit: function (other, self)    // 结束
 其中other是与这个节点碰撞的节点的碰撞器组件
 其中self是自身节点的碰撞器组件   
 **是碰撞器组件,不是节点**-->碰撞器组件.node

2.碰撞检测案例启动碰撞引擎

const {ccclass, property} = cc._decorator;
@*ccclass*
export default class EnableCollision extends *cc*.*Component* {
    @property({type:cc.*Boolean*, tooltip:"是否开启碰撞检测系统"})
    isEnable: *boolean* = true;
    @property({type:cc.*Boolean*, tooltip:"是否开启碰撞检测系统"})
    isDebug: *boolean* = true;
    private manager : *cc*.*CollisionManager* ;
    onLoad () {
        if(*this*.isEnable){
            *this*.manager = cc.director.getCollisionManager();
            *this*.manager.enabled = *this*.isEnable;
            if(*this*.isDebug){
                *this*.manager.enabledDebugDraw = true;
            }
        }
    }
}

游戏开发碰撞检测书籍_游戏开发经典书籍_unity游戏开发书籍

设置分组和组匹配

unity游戏开发书籍_游戏开发经典书籍_游戏开发碰撞检测书籍

游戏开发碰撞检测书籍_unity游戏开发书籍_游戏开发经典书籍

unity游戏开发书籍_游戏开发碰撞检测书籍_游戏开发经典书籍

添加碰撞组件

unity游戏开发书籍_游戏开发碰撞检测书籍_游戏开发经典书籍

游戏开发碰撞检测书籍_游戏开发经典书籍_unity游戏开发书籍

游戏开发碰撞检测书籍_unity游戏开发书籍_游戏开发经典书籍

有碰撞回调处理吗?

游戏开发碰撞检测书籍_unity游戏开发书籍_游戏开发经典书籍

unity游戏开发书籍_游戏开发碰撞检测书籍_游戏开发经典书籍