2012-02-20 1 views
1

a. У меня есть объект. b. когда пользователь прикасается к экрану, он облегчит/tween для пользователя, который коснется координаты. c. если пользователь перетаскивает свой палец, тогда объект будет следовать этому пути, просто пройдя путь, сделанный входными данными из события движения ACTION_MOVE.как к объекту всегда путешествовать кратчайшее расстояние в/в пункт оно уже после

Как сделать так, чтобы объект занимал самое короткое расстояние до пользователя, касаясь координат вместо того, чтобы следовать точному пути, который они создают?

В конце концов, объект должен догнать координаты касания пользователей.

public Scene onLoadScene() { 
    this.getEngine().registerUpdateHandler(new FPSLogger()); 

    final Scene scene = new Scene(); 
    scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f)); 

    final int x = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth())/2; 
    final int y = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight())/2; 
    final Sprite face = new Sprite(x, y, this.mFaceTextureRegion); 
    scene.registerTouchArea(face); 
    scene.attachChild(face); 
    //face.setPosition(134, 200); 
    //face.registerEntityModifier(new MoveModifier(500, x, 100, y, 200, EaseQuadIn.getInstance())); 

    scene.setOnSceneTouchListener(new IOnSceneTouchListener() { 

     @Override 
     public boolean onSceneTouchEvent(Scene pScene,TouchEvent pSceneTouchEvent) { 
      int facePosX = (int) (pSceneTouchEvent.getX() - face.getWidth()/2); 
      int facePosY = (int) (pSceneTouchEvent.getY() - face.getHeight()/2); 

      if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_MOVE) 
      { 
       face.registerEntityModifier(new MoveModifier(1, face.getX(), facePosX,face.getY(), facePosY, EaseQuadIn.getInstance()));     
       } 
      return true;    
      } 
    }); 


    scene.setTouchAreaBindingEnabled(true); 
    return scene; 
} 

ответ

0

Я хотел бы предложить вам принять MotionEvent.ACTION_DOWN и MotionEvent.ACTION_UP, и получить время начала и окончания координаты, и переместить объект соответственно.

Итак, ваша начальная точка будет на ACTION_DOWN, а End Pont - на ACTION_UP.

+0

хорошая идея. я попробую это и опубликую свой прогресс. благодаря –

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