private void updateView() {
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
    String characterName =
        preferences.getString(
            (String) getText(R.string.pref_character_name_key),
            (String) getText(R.string.pref_character_name_default));

    mAvatarImageView = (ImageView) getView().findViewById(R.id.avatar);
    mAvatarImageView.setImageResource(getAvatarResourceId());
    mCharacterNameTextView = (TextView) getView().findViewById(R.id.character_name);
    mCharacterNameTextView.setText(characterName);

    mSetupCharacterButton = (Button) getView().findViewById(R.id.button_setup_character);
    mSetupCharacterButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            Intent intent = new Intent(getActivity(), CharacterSetupActivity.class);
            startActivity(intent);
          }
        });

    mSpinner = (ProgressBar) getView().findViewById(R.id.spinner);
    mJoinStartButton = (Button) getView().findViewById(R.id.button_join_start);
    mJoinStartButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            onJoinReadyClicked();
          }
        });

    SpellcastGameModel model = SpellcastApplication.getInstance().getGameModel();
    PlayableCharacter player = model.getControlledCharacter();

    if (player.getPlayerState() == GameManagerClient.PLAYER_STATE_AVAILABLE) {
      mSetupCharacterButton.setVisibility(View.VISIBLE);
    } else {
      mSetupCharacterButton.setVisibility(View.INVISIBLE);
    }

    if (model.isGameJoinable() && !player.isPlayerRequestInProgress()) {
      mJoinStartButton.setVisibility(View.VISIBLE);
      mSpinner.setVisibility(View.GONE);
      if (player.getPlayerState() == GameManagerClient.PLAYER_STATE_AVAILABLE) {
        mJoinStartButton.setText(R.string.button_join_battle);
      } else if (player.getPlayerState() == GameManagerClient.PLAYER_STATE_READY) {
        mJoinStartButton.setText(R.string.button_start_battle);
      }
    } else {
      mJoinStartButton.setVisibility(View.GONE);
      mSpinner.setVisibility(View.VISIBLE);
    }
  }
示例#2
0
 /** Let the player fall to the ground */
 private void playerDeadFall() {
   player.dead();
   do {
     player.move();
     draw();
     // sleep
     try {
       Thread.sleep(UPDATE_INTERVAL / 4);
     } catch (InterruptedException e) {
       e.printStackTrace();
     }
   } while (!player.isTouchingGround());
 }
示例#3
0
  /**
   * Draws everything normal, except the player will only be drawn, when the parameter is true
   *
   * @param drawPlayer
   */
  private void drawBlinking(boolean drawPlayer) {
    while (!holder.getSurface().isValid()) {
      /*wait*/
    }
    Canvas canvas = holder.lockCanvas();
    bg.draw(canvas);
    for (Obstacle r : obstacles) {
      r.draw(canvas);
    }
    for (PowerUp p : powerUps) {
      p.draw(canvas);
    }
    if (drawPlayer) {
      player.draw(canvas);
    }
    fg.draw(canvas);
    pauseButton.draw(canvas);

    // Score Text
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    paint.setTextSize(getScoreTextMetrics());
    canvas.drawText(
        game.getResources().getString(R.string.onscreen_score_text)
            + " "
            + game.accomplishmentBox.points
            + " / "
            + game.getResources().getString(R.string.onscreen_coin_text)
            + " "
            + game.coins,
        0,
        getScoreTextMetrics(),
        paint);
    holder.unlockCanvasAndPost(canvas);
  }
示例#4
0
  /**
   * Draws all gameobjects on the canvas
   *
   * @param canvas
   */
  private void drawCanvas(Canvas canvas) {
    bg.draw(canvas);
    for (Obstacle r : obstacles) {
      r.draw(canvas);
    }
    for (PowerUp p : powerUps) {
      p.draw(canvas);
    }
    player.draw(canvas);
    fg.draw(canvas);
    pauseButton.draw(canvas);

    // Score Text
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    paint.setTextSize(getScoreTextMetrics());
    canvas.drawText(
        game.getResources().getString(R.string.onscreen_score_text)
            + " "
            + game.accomplishmentBox.points
            + " / "
            + game.getResources().getString(R.string.onscreen_coin_text)
            + " "
            + game.coins,
        0,
        getScoreTextMetrics(),
        paint);
  }
示例#5
0
 /**
  * Sets the player into startposition Removes obstacles. Let's the character blink a few times.
  */
 private void setupRevive() {
   game.gameOverDialog.hide();
   player.setY(this.getHeight() / 2 - player.width / 2);
   player.setX(this.getWidth() / 6);
   obstacles.clear();
   powerUps.clear();
   player.revive();
   for (int i = 0; i < 6; ++i) {
     drawBlinking(i % 2 == 0);
     // sleep
     try {
       Thread.sleep(UPDATE_INTERVAL * 5);
     } catch (InterruptedException e) {
       e.printStackTrace();
     }
   }
   resumeAndKeepRunning();
 }
示例#6
0
  /** Draw Tutorial */
  public void showTutorial() {
    showedTutorial = true;
    tutorialIsShown = true;

    player.move();
    pauseButton.move();

    while (!holder.getSurface().isValid()) {
      /*wait*/
    }

    Canvas canvas = holder.lockCanvas();
    drawCanvas(canvas);
    drawTutorial(canvas);
    holder.unlockCanvasAndPost(canvas);
  }
示例#7
0
 /** Checks collisions and performs the action */
 private void checkCollision() {
   for (Obstacle o : obstacles) {
     if (o.isColliding(player)) {
       o.onCollision();
       gameOver();
     }
   }
   for (int i = 0; i < powerUps.size(); i++) {
     if (this.powerUps.get(i).isColliding(player)) {
       this.powerUps.get(i).onCollision();
       this.powerUps.remove(i);
       i--;
     }
   }
   if (player.isTouchingEdge()) {
     gameOver();
   }
 }
示例#8
0
  /** Update sprite movements */
  private void move() {
    for (Obstacle o : obstacles) {
      o.setSpeedX(-getSpeedX());
      o.move();
    }
    for (PowerUp p : powerUps) {
      p.move();
    }

    bg.setSpeedX(-getSpeedX() / 2);
    bg.move();

    fg.setSpeedX(-getSpeedX() * 4 / 3);
    fg.move();

    pauseButton.move();

    player.move();
  }