您的位置:首页 > 编程语言

关于从四个方向往一个地方移动后碰撞往后小退的代码

2016-08-04 16:25 381 查看
onCollisionEnter: function (other, self) {

    console.log('on collision enter');

    // 碰撞系统会计算出碰撞组件在世界坐标系下的相关的值,并放到 world 这个属性里面

    var world = self.world;

    // 碰撞组件的 aabb 碰撞框

    var aabb = world.aabb;

    // 上一次计算的碰撞组件的 aabb 碰撞框

    var preAabb = world.preAabb;

    var r = world.radius

    var point = cc.p(preAabb.x,preAabb.y)

    cc.log(aabb.x,aabb.y,preAabb.x,preAabb.y)

    

    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

    point = cc.pAdd(cc.p(preAabb.x,preAabb.y),cc.p(r-offsetX,r-offsetY))

    point = this.node.parent.convertToNodeSpaceAR(point)

    cc.log(point.x,point.y)

    this.node.setPosition(point)

    

    

    

    

    

    

    

    

    // 碰撞框的世界矩阵

    var t = world.transform;

    // 以下属性为圆形碰撞组件特有属性

    var r = world.radius;

    var p = world.position;

    // 以下属性为 矩形 和 多边形 碰撞组件特有属性

    var ps = world.points;

},
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐