@758482981 写道:
var otherAabb = other.world.aabb;//得到另一个的框框(rect)
var otherPreAabb = other.world.preAabb.clone();//上一次计算的碰撞组件另一个的 aabb 碰撞框var selfAabb = self.world.aabb;//得到自己的框框 var selfPreAabb = self.world.preAabb.clone(); //上一次计算的碰撞组件自己的 aabb 碰撞框 // 2nd step // forward x-axis, check whether collision on x-axis selfPreAabb.x = selfAabb.x; otherPreAabb.x = otherAabb.x; //提前一帧做预判??? if (cc.Intersection.rectRect(selfPreAabb, otherPreAabb)) //假如两个框框相交 { if (this.speed.x < 0 && (selfPreAabb.xMax > otherPreAabb.xMax)) //假如本身x速度小于0 并且 自己的框框在矩形 x 轴上的最大值大于另一个的框框的最大值 { this.node.x = otherPreAabb.xMax - this.node.parent.x; cc.log('x',this.node.x ,'xMax',otherPreAabb.xMax,'parent',this.node.parent.x) //这个节点的x为??? this.collisionX = -1; //??? } else if (this.speed.x > 0 && (selfPreAabb.xMin < otherPreAabb.xMin)) //假如本身x速度大于0 并且 自己的框框在矩形 x 轴上的最小值小于另一个的框框的最小值 { this.node.x = otherPreAabb.xMin - selfPreAabb.width - this.node.parent.x; //??? this.collisionX = 1; ///???? } this.speed.x = 0; other.touchingX = true; //??? return; }
帖子: 3
参与者: 1