我正在通过Andengine开发一款游戏而且我被困在了某个地方! 问题是: 它正在添加一个精灵,我在场景上触摸(touchX,touchY),一个精灵正在添加(touchX + 100,touchY)。这两个精灵在x轴上的eact之间总是有100px。 直到现在,我触摸了一次并在现场添加了两个精灵。然后,当我想要移动其中一个(让我们说第一个)时,第二个也必须移动以保持距离(100px)。我的代码在下面,这些代码正确地添加,但只有其中一个移动,这就是为什么另一个不能保持距离的原因。我怎么能正确地做到这一点?
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
if(pSceneTouchEvent.getAction() == MotionEvent.ACTION_DOWN)
{
touchX = pSceneTouchEvent.getX();
touchY = pSceneTouchEvent.getY();
}
if(pSceneTouchEvent.getAction() == MotionEvent.ACTION_UP)
{
}
if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_MOVE){
AnimatedSprite circleBoxE1 = new AnimatedSprite(touchX, touchY, resourcesManager.circleBoxRegion, vbom){
@Override
public boolean onAreaTouched(TouchEvent pTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
this.setPosition(pTouchEvent.getX(), pTouchEvent.getY());
return true;
}
};
registerTouchArea(circleBoxE1);
attachChild(circleBoxE1);
setTouchAreaBindingOnActionDownEnabled(true);
AnimatedSprite circleBoxE2 = new AnimatedSprite(touchX, 450 - touchY, resourcesManager.circleBoxRegion, vbom){
@Override
public boolean onAreaTouched(TouchEvent pTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
this.setPosition(pTouchEvent.getX() + 100, pTouchEvent.getY());
return true;
}
};
registerTouchArea(circleBoxE2);
attachChild(circleBoxE2);
setTouchAreaBindingOnActionDownEnabled(true);
}
答案 0 :(得分:1)
如果您想在场景触摸上更新两个位置,请按照以下步骤进行操作:
Ex:sprite1.setPosition(touchX,touchY); sprite2.setPosition(sprite1.getX()+ 100,touchY);
如果你想更新sprite1 touch
Ex:this.setPositon(touchX,touchY); sprite2.setPosition(this.getX()+ 100,touchY);
当使用updateHandlers更新另一个sprite时,你可以更新一个sprite: