コード例 #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;
  }
コード例 #2
0
ファイル: GameView.java プロジェクト: MastAvalons/Spacewars
  /** Initializes and sets the on-screen position of the game controls. */
  private void setControlsStart() {
    if (mCtrlDownArrow == null) {
      mCtrlDownArrow = new GameUi(mGameContext, R.drawable.ctrl_down_arrow);

      mCtrlDownArrow.setX(
          mScreenXMax
              - ((mCtrlDownArrow.getWidth() * 2) + getPixelValueForDensity(CONTROLS_PADDING)));
      mCtrlDownArrow.setY(
          mScreenYMax - (mCtrlDownArrow.getHeight() + getPixelValueForDensity(CONTROLS_PADDING)));
    }

    if (mCtrlUpArrow == null) {
      mCtrlUpArrow = new GameUi(mGameContext, R.drawable.ctrl_up_arrow);

      mCtrlUpArrow.setX(mCtrlDownArrow.getX());
      mCtrlUpArrow.setY(mCtrlDownArrow.getY() - (mCtrlUpArrow.getHeight() * 2));
    }

    if (mCtrlLeftArrow == null) {
      mCtrlLeftArrow = new GameUi(mGameContext, R.drawable.ctrl_left_arrow);
      mCtrlLeftArrow.setX(mCtrlDownArrow.getX() - mCtrlLeftArrow.getWidth());
      mCtrlLeftArrow.setY(mCtrlDownArrow.getY() - mCtrlLeftArrow.getHeight());
    }

    if (mCtrlRightArrow == null) {
      mCtrlRightArrow = new GameUi(mGameContext, R.drawable.ctrl_right_arrow);

      mCtrlRightArrow.setX(
          mScreenXMax - (mCtrlLeftArrow.getWidth() + getPixelValueForDensity(CONTROLS_PADDING)));
      mCtrlRightArrow.setY(mCtrlLeftArrow.getY());
    }
  }