2014-11-23 18 views
1

我正在为一个类开发一个简单的游戏应用程序。现在我试图实现将角色(图像视图)从当前所在的位置移动到任何屏幕的任何位置的简单功能。我有这个工作,但没有动画,所以角色只是从屏幕上的一个位置跳到我点击屏幕的位置。 下面的代码为:Android试图流畅地将图像视图移动到屏幕所在的位置

@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文件,我现在有控制任何这类活动你点击后,“玩游戏”,并采取了游戏画面出现。 我试图让角色(图像视图)从其当前位置移动到流畅地点击屏幕的任何位置,因此我点击屏幕,角色在一段时间内从当前位置移动到点击位置发生。请帮忙!

+0

您可以使用TranslateAnimation: http://stackoverflow.com/questions/11144421/move-an-imageview-to-different-position-in-animated-way-in-android – mromer 2014-11-23 19:46:03

+0

尝试我的代码,它的工作很好 – 2015-05-17 10:00:44

回答

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; 
} 
相关问题