我是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 :(得分: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;
}