Collision AndEngine时形状重叠

时间:2013-03-14 12:57:03

标签: android andengine

我是AndEngine的新手。我在屏幕上有三个矩形。我在这些矩形上设置了onAreaTouched

当移动其中一个矩形时,如果它们发生碰撞,它们会相互重叠。

this.mScene.registerUpdateHandler(new IUpdateHandler() {

        @Override
        public void onUpdate(float pSecondsElapsed) {

            if (rect1.collidesWith(rect2)
                    || rect1.collidesWith(rect3)) {
                // rect1 should not move further 
            }
        }

        @Override
        public void reset() {
            // TODO Auto-generated method stub

        }

    });

如果rect1与rect2发生冲突,我不想重叠它们,那么rect1不应该进一步移动。

1 个答案:

答案 0 :(得分:0)

尝试以下代码,我认为它对您有所帮助。

this.mScene.registerUpdateHandler(new IUpdateHandler() {

    @Override
    public void onUpdate(float pSecondsElapsed) {

        if (isMoveTouch && (rect1.collidesWith(rect2)
                || rect1.collidesWith(rect3))) {
              isMoveTouch=false
            // rect1 should not move further 
        }
    }

    @Override
    public void reset() {
        // TODO Auto-generated method stub

    }

});

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {

    if (pSceneTouchEvent.isActionDown()) {
        return true;
    }
    if (pSceneTouchEvent.isActionMove() && isMoveTouch) {
        // rect1 movement code
        return true;
    }
    if (pSceneTouchEvent.isActionUp()) {
        isMoveTouch = true;
        return true;
    }

    return false;
}