示例#1
0
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    // Only process if game is active
    if (GameActive && !GamePaused) {
      // If the next obstacle is not a tap type check for swipe
      if (nearestObstacle.getType() != Obstacle.TYPE.T_TAP && FingerDown == false) {
        switch (event.getAction()) {
          case MotionEvent.ACTION_DOWN:
            {
              InitialPos.Set(event.getX(), event.getY());
            }
            break;
          case MotionEvent.ACTION_MOVE:
            LastPos.Set(event.getX(), event.getY());
            break;
          case MotionEvent.ACTION_UP:
            DirectionVector.Set(LastPos.operatorMinus(InitialPos));
            break;
        }
      }
      // else check for tap
      else {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
          FingerDown = true;
          Tapped = true;
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
          FingerDown = false;
        }
      }

      // Check if touch pause button
      if (event.getAction() == MotionEvent.ACTION_DOWN) {
        // If touch pause button
        if (CheckTouch(
            event.getX(),
            event.getY(),
            Pause_button.getPosX(),
            Pause_button.getPosY(),
            (int) Pause_button.getPosX() + Pause_button.getImgWidth(),
            (int) Pause_button.getPosY() + Pause_button.getImgHeight())) {
          GamePaused = true;
        }
      }
      return true;
    } else if (GameActive && GamePaused) {
      if (event.getAction() == MotionEvent.ACTION_DOWN) {
        if (CheckTouch(
            event.getX(),
            event.getY(),
            Unpause_button.getPosX(),
            Unpause_button.getPosY(),
            (int) Unpause_button.getPosX() + Unpause_button.getImgWidth(),
            (int) Unpause_button.getPosY() + Unpause_button.getImgHeight())) {
          GamePaused = false;
        }
      }
      return true;
    }
    // To process other taps while game is not active
    else {
      if (event.getAction() == MotionEvent.ACTION_DOWN) {
        // If touch restart button
        if (CheckTouch(
            event.getX(),
            event.getY(),
            Restart_button.getPosX(),
            Restart_button.getPosY(),
            (int) Restart_button.getPosX() + Restart_button.getImgWidth(),
            (int) Restart_button.getPosY() + Restart_button.getImgHeight())) {
          // Restart the game
          soundManager.PlaySFX();
          Reset();
        }
        // If touch mainmenu button
        else if (CheckTouch(
            event.getX(),
            event.getY(),
            Mainmenu_button.getPosX(),
            Mainmenu_button.getPosY(),
            (int) Mainmenu_button.getPosX() + Mainmenu_button.getImgWidth(),
            (int) Mainmenu_button.getPosY() + Mainmenu_button.getImgHeight())) {
          soundManager.PlaySFX();
          Intent intent = new Intent();
          intent.setClass(getContext(), Mainmenu.class);
          intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
          getContext().startActivity(intent);
        }
      }
      return true;
    }
  }
示例#2
0
  public void RenderGameplay(Canvas canvas) {
    // 2) Re-draw 2nd image after the 1st image ends
    if (canvas == null) {
      return;
    }
    canvas.drawBitmap(scaledbg, bgX, bgY, null);
    canvas.drawBitmap(scaledbg, bgX + ScreenWidth, bgY, null);

    // FPS
    canvas.drawText("FPS:" + FPS, 50, 75, paint);

    if (GameActive) {
      // Score
      // Only show score if endless mode
      if (GameMode == 0) {
        // Score
        canvas.drawText("Score:" + score, 800, 75, paint);
      }
      stickman_anim.draw(canvas);

      // Pause button
      canvas.drawBitmap(
          Pause_button.getImage(), Pause_button.getPosX(), Pause_button.getPosY(), null);

      // Adventure mode
      if (GameMode == 1) {
        // Adventure mode UI info
        canvas.drawBitmap(
            Progress_line.getImage(), Progress_line.getPosX(), Progress_line.getPosY(), null);
        canvas.drawBitmap(
            Progress_bar.getImage(), Progress_bar.getPosX(), Progress_bar.getPosY(), null);
      }
    }

    // Obstacles
    for (int i = 0; i < obstacleList.length; ++i) {
      // Only draw if active
      if (obstacleList[i].isActive()) {
        canvas.drawBitmap(
            obstacleList[i].getObstacle(),
            obstacleList[i].getPosX(),
            obstacleList[i].getPosY(),
            null);
      }
    }

    // Game is paused
    if (GamePaused) {
      // Paused Game
      canvas.drawBitmap(
          Pause_screen.getImage(), Pause_screen.getPosX(), Pause_screen.getPosY(), null);
      canvas.drawBitmap(
          Unpause_button.getImage(), Unpause_button.getPosX(), Unpause_button.getPosY(), null);
    }

    // Game is lost
    if (GameActive == false) {
      if (Win) {
        canvas.drawBitmap(Win_screen.getImage(), Win_screen.getPosX(), Win_screen.getPosY(), null);
      } else {
        canvas.drawBitmap(
            Gameover_screen.getImage(), Gameover_screen.getPosX(), Gameover_screen.getPosY(), null);
        // Only if endless we display the score
        if (GameMode == 0) {
          // Score
          canvas.drawText("Score:" + score, 800, 500, paint);
        }
      }
      canvas.drawBitmap(
          Restart_button.getImage(), Restart_button.getPosX(), Restart_button.getPosY(), null);
      canvas.drawBitmap(
          Mainmenu_button.getImage(), Mainmenu_button.getPosX(), Mainmenu_button.getPosY(), null);
    }
  }