1

我是新手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 不应该进一步移动。

4

1 回答 1

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;
}
于 2013-03-15T07:05:09.613 回答