当有人使用onTouchEvent(MotionEvent)点击屏幕时,试图让我的精灵跳转,但不知道应该如何使用这个方法?

时间:2014-10-22 11:12:13

标签: android touch 2d sprite

现在,我在游戏中的所有内容都是从屏幕左侧移动到右侧的精灵。我试图在触摸屏幕时跳转,所以我添加了这个类:

 import android.app.Activity;
 import android.view.MotionEvent;

 public class TouchScreen extends Activity {
 private Player p;
 public boolean onTouchEvent(MotionEvent e) {
    int i = e.getAction();

    switch (i) {

    case MotionEvent.ACTION_DOWN:
        // When your finger touches the screen
        p.jump();
        break;

    case MotionEvent.ACTION_UP:
        // When your finger stop touching the screen

        break;

    case MotionEvent.ACTION_MOVE:
        // When your finger moves around the screen

        break;
    }

    return false;
    }
  }    

现在我试图在Player.update()中调用此方法(Player是精灵的类),但我不知道要传递给onTouchEvent()的内容。我基本上想要“如果屏幕被点击让玩家跳跃”(通过调用Player.jump()),任何想法?

1 个答案:

答案 0 :(得分:0)

您需要指定onTouchEvent覆盖Activity中的原始方法。您还应该在最后调用super.onTouchEvent(e);,因为您要覆盖的方法可能需要执行。

@Overrides
public boolean onTouchEvent(MotionEvent e) {
int i = e.getAction();

switch (i) {

case MotionEvent.ACTION_DOWN:
    // When your finger touches the screen
    p.jump();
    break;

case MotionEvent.ACTION_UP:
    // When your finger stop touching the screen

    break;

case MotionEvent.ACTION_MOVE:
    // When your finger moves around the screen

    break;
}

return super.onTouchEvent(e);
}

您没有明确调用onTouchEvent,系统应在触摸活动时调用此项。您已将p.jump();放在正确的位置了!