2012-02-20 6 views
1

a. 나는 물건이있다. b. 사용자가 화면을 터치하면 사용자 터치 좌표에 쉽게 트위닝됩니다. 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이고 종료점은 ACTION_UP이됩니다.

+0

좋은 아이디어. 나는 그것을 시도하고 나의 진도를 게시 할 것입니다. 감사 –