碰撞的问题,网上教程少,大家不要无视啊

先看一个代码

        var otherAabb = other.world.aabb;
        var otherPreAabb = other.world.preAabb.clone();
        var selfAabb = self.world.aabb;
        var selfPreAabb = self.world.preAabb.clone();
        selfPreAabb.x = selfAabb.x;
        otherPreAabb.x = otherAabb.x;

        if (cc.Intersection.rectRect(selfPreAabb, otherPreAabb)) {
            if (this.speed.x < 0 && (selfPreAabb.xMax > otherPreAabb.xMax)) {
                this.node.x = otherPreAabb.xMax - this.node.parent.x;
                this.collisionX = -1;
            }
            else if (this.speed.x > 0 && (selfPreAabb.xMin < otherPreAabb.xMin)) {
                this.node.x = otherPreAabb.xMin - selfPreAabb.width - this.node.parent.x;
                this.collisionX = 1;
            }

            this.speed.x = 0;
            other.touchingX = true;
            return;
        }

这是部分代码,我只知道aabb哪个是碰撞体的筐子,但是不知道selfAabb.x具体代表什么selfPreAabb.xMax有具体代表什么,这是拼p2物理引擎里的,selfPreAabb.x = selfAabb.x;又是什么意思

aabb既然是筐子 那么就有四条边
分别是左xMin,右xMax,上yMax,下yMin。
preAabb就是上一帧的aabb
aabb这些属性又分为本地坐标系的版本和世界坐标系的版本
世界坐标系的版本都放在aabb.world里面
aabb有x y属性 我记得是aabb的左下角那个点的坐标
如果要获取aabb正中央的坐标的话 得用aabb.center.x. aabb.center.y

1赞

谢谢我好想明白了一些,有问题再来问

等等那如果我把物体斜着放,这左xMin,右xMax,上yMax,下yMin怎么算,算最高点最低点坐标么?

写着放算不了。。要么用等4月底的1.5内测版
要么用裁剪库。