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); } }
/** 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()); }
/** * 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); }
/** * 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); }
/** * 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(); }
/** 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); }
/** 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(); } }
/** 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(); }