2013-11-28 3 views
0

Я разрабатываю игру через Andengine, и я где-то застрял! Проблема заключается в следующем: Это добавление спрайта, где я касаюсь сцены (touchX, touchY), и один спрайт добавляет (touchX + 100, touchY). Эти два спрайта всегда имеют 100px между eact other по оси x. До сих пор я коснулся одного раза и добавил два спрайта на сцену. Затем, когда я хочу переместить один из них (скажем, первый), второй должен двигаться также, чтобы удержать расстояние (100 пикселей) между ними. Мои коды ниже, эти коды добавлены правильно, но только один из них движется, поэтому другой не может постоянно держать дистанцию. Как я могу сделать это правильно?Один спрайт следует за другим

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

Если Вы хотите обновить две позиции на ощупь сцены следуют ниже:

Ex: sprite1.setPosition (touchX, обидчивый); sprite2.setPosition (sprite1.getX() + 100, touchY);

, если вы хотите обновить на sprite1 прикосновением

Ex: this.setPositon (touchX, обидчивый); sprite2.setPosition (this.getX() + 100, touchY);

вы можете обновить один спрайт, если другой обновляется с помощью updateHandlers:

Смежные вопросы