こんにちは
簡単な場合分けを書かせていただきます。
コード:
/* グローバル変数部分 */
enum //enumとは番号を文字に置き換える列挙型という特殊な型です
{
TITLE,
GAME,
END
};
int NumState=TITLE; //現在選んでいるシーンの番号(最初のシーンを最初に代入)
/* 遷移用関数部分 */
void GameLoop(void)//処理のループ部分に入れる。
{
switch(NumState)//NumStateの値によって処理の流れを変える
{
case TITLE:
/*~ タイトルの処理群 ~ */
/*ここにタイトルでしたい処理を入れてください*/
break;
case GAME:
/*~ ゲームの処理群 ~ */
break;
case END:
/*~ 終了の処理群 ~ */
break;
default:
/*~ エラー ~ */
break;
}
}
これは簡単なシーン遷移です。
switchで場合をわけてNumStateの番号を変えることでシーンを変えます。
関数ポインタやclassなどを使うともっと良い遷移は出来ますが、最初のうちはこれで
十分だと思います。
また、暗転の実装方法ですが
フィールドなどを描画している部分より手前(つまり処理の流れでいうとフィールド描画より後)
に透明な黒の四角形を描画して必要ならばその透過度を上げていって暗くなったら(透過度等々分からない場合はGoogle先生に)
次のシーンに移るというやり方をすればよいかと思います。
DxLibなどを使っている場合はSetBrightなどでもできるのかな?
DxLibはあまり使った事がないので、ワカリマセン。
ただ表示できないなどはそれ以前の部分が出来ていないかと思われますので、
もうしばらく学んでから取り組んでいくとよいかもしれません。
ワタシは触れたことがないので分からないのですが、四聖龍神録や
softyaさんが紹介なされているページなどを見ると良いかと思います。