Android Open Source - mazer Game Input






From Project

Back to project page mazer.

License

The source code is released under:

GNU General Public License

If you think the Android project mazer listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.spatialia.santa;
/* w w  w.  j  a v a 2s  .  c om*/
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

/**
 * Can be attached to a GameView; Provides the direction for which the engine
 * shall move the player.
 */
public abstract class GameInput implements OnTouchListener {

  public enum Movement {
    Left, Top, Right, Bottom, None
  }

  private Movement movement = Movement.None;

  public GameInput() {
  }

  protected Movement getMovement() {
    return movement;
  }

  public void onMoveTop() {
    movement = Movement.Top;
  }

  public void onMoveBottom() {
    movement = Movement.Bottom;
  }

  public void onMoveRight() {
    movement = Movement.Right;
  }

  public void onMoveLeft() {
    movement = Movement.Left;
  }

  public void onMoveStopped() {
    movement = Movement.None;
  }

  private int oldX;
  private int oldY;

  @Override
  public boolean onTouch(View v, MotionEvent event) {

    switch (event.getAction()) {
    case MotionEvent.ACTION_UP:
      onMoveStopped();
      break;
    case MotionEvent.ACTION_DOWN:
      oldX = (int) event.getX();
      oldY = (int) event.getY();
      break;
    case MotionEvent.ACTION_MOVE:
      int newX = (int) event.getX();
      int newY = (int) event.getY();

      int deltaX = newX - oldX;
      int deltaY = newY - oldY;

      if (Math.abs(deltaX) < 20 && Math.abs(deltaY) < 20) {
        break;
      }

      if (Math.abs(deltaX) > Math.abs(deltaY)) {
        if (deltaX > 0) {
          onMoveRight();
        } else {
          onMoveLeft();
        }
      } else {
        if (deltaY > 0) {
          onMoveBottom();
        } else {
          onMoveTop();
        }
      }

      oldX = newX;
      oldY = newY;
      break;
    }
    return true;
  }
}




Java Source Code List

org.spatialia.santa.AlertDialog.java
org.spatialia.santa.GameEngine.java
org.spatialia.santa.GameInput.java
org.spatialia.santa.GameView.java
org.spatialia.santa.MainActivity.java
org.spatialia.santa.Sprite.java
org.spatialia.santa.Tile.java
org.spatialia.santa.logic.LevelManager.java
org.spatialia.santa.logic.Level.java
org.spatialia.santa.logic.Settings.java
org.spatialia.santa.util.JobRunner.java
org.spatialia.santa.util.Perf.java
org.spatialia.santa.util.Post.java