碰撞后人物的行为求助

这里放张图,问题就是当人物与地面碰撞后就不停上下跳动,这是碰撞进入代码:` onCollisionEnter: function (other,self) {
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 + selfPreAabb.width - 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;
        return;
	}
	
	selfPreAabb.y = selfAabb.y;
    otherPreAabb.y = otherAabb.y;

    if (cc.Intersection.rectRect(selfPreAabb, otherPreAabb)) {
        if (this.speed.y < 0 && (selfPreAabb.yMax > otherPreAabb.yMax)) {
            this.node.y = otherPreAabb.yMax + selfPreAabb.height - this.node.parent.y;
            this.jumping = false;
            this.collisionY = -1;
        }
        else if (this.speed.y > 0 && (selfPreAabb.yMin < otherPreAabb.yMin)) {
            this.node.y = otherPreAabb.yMin - selfPreAabb.height - this.node.parent.y;
            this.collisionY = 1;
        }
        
        this.speed.y = 0;
    }    	
},

onCollisionStay: function (other,self) {
},

onCollisionExit: function () {
	this.collisionX = 0;
	this.collisionY = 0;
},
`

这一句有问题吧?
如果你的人物的锚点在(0,0)的话,不应该再加上selfPreAabb.height

难道你人物的锚点是(0,1)?