その16 クラス内静的状態遷移なお話:サンプルプログラム
C++踏み込み編その16「クラス内静的状態遷移なお話」で説明した内容を踏まえたサンプルプログラムです。実行するとフェードイン後にGameStartなメッセージが出ます:
サンプルスクリーンショット。ちょっとゲームっぽいけどダミーです(^-^;
ステージを管理するStageクラス内でファイルの読み込み、オブジェクト生成、フェードインそしてメッセージ表示が一連の状態遷移クラスを用いて記述、実現されています。
○ 環境設定
このサンプルを実行するのに必要なファイルはこちらからダウンロードできます(CPPSmp_No16_StateInClass.zip)。ダウンロードしたアーカイブを解凍し、srcフォルダ内のコードを空のWin32プロジェクトに追加します。Stage01.dat及びStage02.datファイルはプロフェクトフォルダ直下に置いて下さい。
○ 見どころ
このサンプルの見どころはStageクラス内での状態遷移です。Stateクラスから派生されたクラスのオブジェクトによって状態遷移が実現されています。Stageクラス自体は状態遷移オブジェクトが持つrunメソッドを実行し続けているだけです。クラス内の静的な状態遷移はおおよそこれで実現可能です。今回はしていませんが、StageクラスをStateクラスから派生させると、Stageクラスもまた状態遷移の一つとして扱うことが出来るようになります。例えばStage01の次にStage02へ遷移させようと思った時などに効果を発揮します。