2014-11-23 10 views
1

나는 클래스를위한 간단한 게임 앱을 개발 중이다. 지금 현재 스크린이 두드러진 곳 어디에서나 문자 (이미지 뷰)를 움직이는 간단한 기능을 구현하려고합니다. 나는 현재 작동하지만 애니메이션이 없으므로 캐릭터가 화면의 한 위치에서 화면을 탭하는 위치로 점프합니다. 는 여기에 대한 코드입니다 :안드로이드가 화면을 부드럽게 움직여서 화면이 도청되는 곳으로 이동하려한다

@Override 
public boolean onTouchEvent(MotionEvent event) {  
    float tx = event.getX(); 
    float ty = event.getY(); 

    int action = event.getAction(); 
    switch(action) { 
    case MotionEvent.ACTION_DOWN: 
     tx = event.getX(); 
     ty = event.getY(); 

     findViewById(R.id.character).setX(tx-45); 
     findViewById(R.id.character).setY(ty-134); 
     break; 
    default: 
    } 
    return true; 
} 

이 코드는 내가 현재를 클릭 "게임"게임 화면으로 이동 후 발생하는 활동의 모든 종류를 제어 한 GameActivity.java 파일에 있습니다. 문자 (imageView)를 현재 위치에서 유동적으로 화면을 가볍게 두드리는 곳으로 이동하려고하므로 화면을 탭하면 문자가 현재 위치에서 탭이있는 위치로 이동합니다 발생했습니다. 도와주세요!

+0

당신은 TranslateAnimation 사용할 수 있습니다 http://stackoverflow.com/questions/11144421/move-an-imageview-to-different-position-in-animated-way-in-android – mromer

+0

시도 내 코드, 좋은 일이야. –

답변

0
ImageView splash ; 
@Override 
public boolean onTouchEvent(MotionEvent event) { 
    float tx = event.getX(); 
    float ty = event.getY(); 

    int action = event.getAction(); 
    switch(action) { 
     case MotionEvent.ACTION_DOWN: 
      tx = event.getX(); 
      ty = event.getY(); 

    //  findViewById(R.id.character).setX(tx-45); 
     //  findViewById(R.id.character).setY(ty-134); 

      ObjectAnimator animX = ObjectAnimator.ofFloat(splash, "x", tx-45); 
      ObjectAnimator animY = ObjectAnimator.ofFloat(splash, "y", ty-134); 
      AnimatorSet animSetXY = new AnimatorSet(); 
      animSetXY.playTogether(animX, animY); 
      animSetXY.start(); 

      break; 
     default: 
    } 
    return true; 
}