2013-03-14 24 views
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不应再移动。

+0

发生碰撞时反转(移动物体的速度)? – 2013-03-14 13:01:22

+0

我正在用手指移动矩形。你能告诉我如何?任何例子? – 2013-03-14 13:04:02

+0

您必须根据您的手指在某处正确更新位置?如果发生此碰撞,请禁用该更新。 – 2013-03-14 13:06:28

回答

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; 
}