cocosCreator碰撞组件的知识点

碰撞组件分为多边形碰撞,圆形碰撞,矩形碰撞。
修改偏移量:都可以在各自的 碰撞中心区域 点击鼠标左键拖拽来快速编辑碰撞组件的 偏移量
添加分组:分组添加后是不可以删除的,不过可以任意修改分组的名字
一个节点上的碰撞组件,无论如何都是不会相互进行碰撞检测的。
获取碰撞检测系统的API:manager =cc.director.getCollisionManager();默认碰撞检测系统是关闭的。需要通过manager.enabled = true;来开启
圆形碰撞组件的特有属性:radius:半径;position:位置坐标。
矩形和多边形的特有属性:points 点。
当碰撞产生的方法名:onCollisionEnter
当碰撞产生之后的方法名:onCollisionStay
当碰撞结束的方法名:onCollisionExit。
在开发过程中涉及到多个方向的碰撞。具体代码如下:

cc.Class({
    extends: cc.Component,

    properties: {
        bg:cc.Node,
        numX:0,
        numY:0,
    },

    // use this for initialization
    onLoad: function () {
        //this.num = 1;
        //this.numY = 2;
        var collider = cc.director.getCollisionManager();
        collider.enabled =true;
        collider.enabledDebugDraw =true;
    },
    onCollisionEnter: function (other, self) {
        cc.log("检测到碰撞");
        //this.num = -1;
        var world = self.world;
        var aabb = world.aabb;
        var preAabb =  world.preAabb;
        var r = world.radius;

        var offsetX = aabb.x - preAabb.x;
        var offsetY = aabb.y - preAabb.y;
        if(offsetX!= 0) offsetX = offsetX/Math.abs(offsetX)*2;
        if(offsetY!= 0) offsetY = offsetY/Math.abs(offsetY)*2;
       var  point  = cc.pAdd(cc.p(preAabb.x,preAabb.y),cc.pAdd(r - offsetX,r - offsetY));
        point = this.node.parent.convertToNodeSpaceAR(point);
        this.node.setPosition(point);
    },
        // called every frame, uncomment this function to activate update callback
     update: function (dt) {
         this.node.x += this.num;
         this.node.y += this.numY;
         /*if(this.node.x
    },
});

你可能感兴趣的:(学习要点)