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<cc.winSize){
             this.num =-1;
         }*/
    },
});
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值