06/01/21 05:02:47 Rn7mTFxP
・Struct.hにあった__System構造体メンバーの
「int nSceneControl; (シーンを表す変数) 」を
Grobal.hの「CSceneSwitcher g_sceneSwitcher」に置き換えた。
そのため、今まではBattle, Field, WinMainで
「g_Sys.nSceneControl = S_FIELD;」のようにフラグを入れ替え
メインループのswitch文で分岐させていたのを、
「g_sceneSwitcher.SwitchToField();」のように指定し、
メインループでは「g_sceneSwitcher.ProcessFrame();」と
実行するだけで済むようになりました。
例えば「g_sceneSwitcher.SwitchToBattle(player, enemy);」
のように戦うキャラをその都度指定できるようにするなど、
シーンごとに管理するデータも渡せるように出来ます。
シーンを追加する場合には、CSceneクラスを継承した
サブクラスをCSceneSwitcherクラスに登録します。
# 「ProcessFrame()」は必ずオーバーライドして下さい。
# 初期バージョンでのField()やBattle()関数にあたるので。