gameClear.hについて
const int CG_NUM = 8 ; //CLEAR_GRAPHIC_NUMの略
enum eCG_INDEX{
CG_BACK,
};
struct SGameClear{
int Graphic[CG_NUM]; // グラフィック
void Process(); // この中でループする
void Init(); // 初期化
void FirstInit(); // コンストラクタ
void Load(); // ロード
void Draw(); // 描画系をここにまとめる
};
タイトルと一緒です。駄文→コンストラクタじゃないですけど、コンストラクタもどきってことでそんなコメントがついてます。コンストラクタだじゃないです。機能としては大体一緒ですけど、コンスt(ryコンストラクタとは、その構造体が呼び出されたとき、、自動的に1度だけ呼び出される特殊な関数です。その関数にメンバ変数に初期値を代入する処理を書いておくことで呼び出し→代入という処理を自動で行ってくれるわけです。つまり動作としてはコンストラクタもこのFirstInitも一緒です。でも別物です。
ほとんどタイトルと一緒です。解説することが一切ありません。
// ゲームクリア画面の処理
void SGameClear::Process(){
Draw();
if( Key[KEY_INPUT_Z] == 1 )
ChangeGameState( GS_TITLE );
}
// ゲームクリア画面の初期化
void SGameClear::Init(){
BgmControl.ChangePlay( BGM_GAMECLEAR );
}
// 最初の変数の初期化
void SGameClear::FirstInit(){
memset(this,0,sizeof(SGameClear));
}
// ロード
void SGameClear::Load(){
Graphic[CG_BACK] = LoadGraph("picture/clear_back.bmp");
}
// 描画
void SGameClear::Draw(){
DrawGraph(0,0,Graphic[CG_BACK],FALSE);
DrawString(100,100,"ゲームクリア画面です。",Black);
DrawString(100,120,"Zでタイトルに戻る。",Black);
}
タイトルの構造体をコピペで作ったんだから同じなのは当然です。