package com.matimdev.scene; import com.matimdev.base.BaseScene; import com.matimdev.manager.SceneManager.SceneType; public class GameScene extends BaseScene { @Override public void createScene() { } @Override public void onBackKeyPressed() { } @Override public SceneType getSceneType() { return SceneType.SCENE_GAME; } @Override public void disposeScene() { } }
private void createBackground() { setBackground(new Background(Color.BLUE)); }
private HUD gameHUD; private void createHUD() { gameHUD = new HUD(); camera.setHUD(gameHUD); }
private Text scoreText; private void createHUD() { gameHUD = new HUD(); // CREATE SCORE TEXT scoreText = new Text(20, 420, resourcesManager.font, "Score: 0123456789", new TextOptions(HorizontalAlign.LEFT), vbom); scoreText.setAnchorCenter(0, 0); scoreText.setText("Score: 0"); gameHUD.attachChild(scoreText); camera.setHUD(gameHUD); }スコアtextを作成してHUDに貼り付けています。重要なのは、スコアを変更する際に使用する可能性のある全ての文字 (特に全ての数字)で、textを初期化することです。 何のためにそのようなことをするのでしょうか? それは"メモリの事前確保"のためです - そうしないと、初期化時に設定されなかった新しい文字を使ってtextを変更する度に、目に見えてスローダウンが発生するためです。
private int score = 0; private void addToScore(int i) { score += i; scoreText.setText("Score: " + score); }
別の章では、適切なコントローラーの作成について説明します.
private PhysicsWorld physicsWorld; private void createPhysics() { physicsWorld = new FixedStepPhysicsWorld(60, new Vector2(0, -17), false); registerUpdateHandler(physicsWorld); }今回はFixedStepPhysicsWorld クラスを使用しており、このクラスは毎秒ごとのstep量を設定します(今回の場合は60)。 二つ目のパラメータは、使用する重力パラメータです。編集するかどうかはあなた次第で、あなたの要件よって異なります。 最後に、PhysicsWorld をアップデートハンドラとしてsceneに登録します。
@Override public void createScene() { createBackground(); createHUD(); createPhysics(); }
これで完了です。この記事では、今のところ基本的なゲームシーンの設定を説明しています。 次の記事で、コントローラー、プレイヤー、ステージの読み込みと構築、ステージロジックといった大きな実装を追加します。 ゲームシーンの読み込み・表示処理を設定するには、次の記事を確認してください。
前の記事 | 次の記事 |