一个精灵跟随另一个精灵

时间:2013-11-28 21:44:32

标签: android coding-style touch andengine game-center

我正在通过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);

  }

1 个答案:

答案 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:

相关问题