コード例 #1
0
ファイル: GameView.java プロジェクト: MastAvalons/Spacewars
  /**
   * Detects and handles touch events from the user.
   *
   * @param MotionEvent event
   * @return boolean
   */
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    int eventAction = event.getAction();

    switch (eventAction) {
      case MotionEvent.ACTION_DOWN:
        if (mGameState == STATE_RUNNING) {
          final int x = (int) event.getX();
          final int y = (int) event.getY();

          if (mCtrlUpArrow.getImpact(x, y)) {
            Log.d("Tile Game Example", "Pressed up arrow");
            mLastStatusMessage = "Moving up";
            mPlayerVerticalDirection = DIRECTION_UP;
            mPlayerMoving = true;
          } else if (mCtrlDownArrow.getImpact(x, y)) {
            Log.d("Tile Game Example", "Pressed down arrow");
            mLastStatusMessage = "Moving down";
            mPlayerVerticalDirection = DIRECTION_DOWN;
            mPlayerMoving = true;
          } else if (mCtrlLeftArrow.getImpact(x, y)) {
            Log.d("Tile Game Example", "Pressed left arrow");
            mLastStatusMessage = "Moving left";
            mPlayerHorizontalDirection = DIRECTION_LEFT;
            mPlayerMoving = true;
          } else if (mCtrlRightArrow.getImpact(x, y)) {
            Log.d("Tile Game Example", "Pressed right arrow");
            mLastStatusMessage = "Moving right";
            mPlayerHorizontalDirection = DIRECTION_RIGHT;
            mPlayerMoving = true;
          }
        }

        break;
      case MotionEvent.ACTION_UP:
      case MotionEvent.ACTION_CANCEL:
        mPlayerMoving = false;
        mPlayerVerticalDirection = 0;
        mPlayerHorizontalDirection = 0;
        break;
    }

    return true;
  }