1. ゲーム エンジンで最初のゲームを作成する
コンピューター ゲームを実装する場合、次の 3 つの段階があります。
- ゲームを初期化しています。これには、さまざまな準備アクション (競技フィールドのサイズの設定と描画、初期位置でのゲーム オブジェクトの作成とセットアップ、およびゲームの開始時に実行する必要があるその他のアクション) が含まれます。
- ゲームをプレイしています。これには、ゲーム オブジェクトの移動、プレイヤーのアクション、獲得したポイントの集計、および定期的な間隔で、またはボタンのクリックやキーの押下に応じて実行する必要があるその他のアクションが含まれる場合があります。
- ゲームを終了します。これには、アニメーションの停止、勝敗メッセージ、ゲーム終了時に実行する必要があるその他のアクションが含まれる場合があります。
ここでは、3 つのステージすべてを順番に説明し、CodeGym ゲーム エンジンがこのプロセスをどのように容易にするかを見ていきます。
2. ゲームの初期化
CodeGym ゲーム エンジンを使用する場合、ゲームの初期化は次の 2 つの手順のみで構成されます。
ステップ 1: ゲームのメインクラスを作成する
CodeGym ゲーム エンジンに基づいて独自のゲームを作成するには、クラスを作成し、Game クラス(com.codegym.engine.cell.Game) を拡張する必要があります。これにより、クラスがゲーム エンジン上のメソッドを呼び出すことができるようになり、エンジンもクラスのメソッドを呼び出すことができるようになります。例:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
ステップ 2:initialize()
メソッドをオーバーライドする
このinitialize()
メソッドでは、ゲームの開始に必要なすべてのアクション (競技フィールドの作成、すべてのゲーム オブジェクトの作成など) を実行します。必要なのは、Game クラスを継承するクラスでこのメソッドを宣言することだけです。例:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all the actions to initialize the game and its objects
}
}
このinitialize()
方法は、方法に類似しているmain()
。これは、すべてのゲーム コードの実行が開始されるエントリ ポイントです。
3. 競争の場を作る
競技場の作成も 2 段階のプロセスです。
ステップ 1: 競技場をセルに分割する
ゲーム エンジンは、プレイ フィールド全体をセルに分割します。最小サイズは 3×3、最大サイズは 100×100 です。
プレイフィールドのサイズは一度作成されると一定です。水平方向と垂直方向の寸法は同じである必要はありません。たとえば、幅 7、高さ 9 の場合:
セルの番号は左上隅から始まることに注意してください。
競技フィールドのサイズを設定するには、void setScreenSize(int width, int height)
メソッドを使用します。競技場のサイズを設定します。width
そのパラメータは、水平 ( ) および垂直 ( ) 次元のセルの数ですheight
。通常、ゲームの開始時に 1 回呼び出されます。例:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override public void initialize()
{
// Set the field size to 7x9 cells
setScreenSize(7, 9);
...
}
}
ゲームを作成するとき、競技フィールドの現在の幅と高さを取得する必要がある場合があります。対応するメソッドはint getScreenWidth()
とですint getScreenHeight()
。
ステップ 2: グリッドをオン/オフにする (オプション)
プレイフィールドのセルを黒いグリッドで区切るのが気に入らない場合は、それをオフにすることができます。
このvoid showGrid(boolean isShow)
メソッドは、セルを区切るグリッドを有効または無効にします。グリッドはデフォルトで表示されます。オフにするには、このメソッドを呼び出してfalse
引数として渡します。
showGrid(false);
結果:
グリッドをオンに戻すには、次のようにメソッドを呼び出します。
showGrid(true);
結果:
4. 原始プログラム
CodeGym ゲーム エンジンを使用する非常に原始的なゲームを書いてみましょう。それは 3 つのことを行います:
- プレイフィールドを 3×3 の 9 つのセルに分割します。
- グリッド(セル間の線)が無効になります。
- 中央のセルが青く塗られ、
X
そこに文字が書き込まれます。
最終的なコードは次のようになります。
public class MySuperGame extends Game
{
@Override
public void initialize()
{
// Create a 3x3 playing field
setScreenSize(3, 3);
// Disable displaying the grid
showGrid(false);
// Change the background of the central cell to blue and display "X" in it
setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
}
}
この例では、競技フィールドが 3x3 に設定され、グリッドがオフになり、セルの高さの半分のオレンジ色の文字が青色のX
背景を持つ中央のセルに配置されます。これは、ゲームが開始されるとプレーヤーが最初に目にするものになります。