シーン別制御
ここではシーンごとに必要な制御をシステムスキンを例に解説しています。
なお、今までのスキンは1つのファイルに全てのシーンを記述する仕様だったため、視認性がとても悪くコードを探すのも一苦労でしたが、最新版では各シーンのコードを別々のファイルに分けることで、他のシーンのコードを誤って変更してしまうのを防いだり、行数もそのシーンの分だけしか含まれないため編集がしやすくなっています。
script.lua
ではこれらのファイルを
include()
関数を利用して読み込ませることで、最終的に全てのシーンを
script.lua
上に定義したものとして処理されるようになっています。
シーンごとにファイルを分ける場合に気をつけなければならないことは、各シーンファイルにて定義したグローバル変数は実質
script.lua
に定義されたことになるため、同じ名前の変数を別のシーンファイルで使用した場合に問題となることがあります。このため、なるべく変数名がかち合わないように自分でルールなどを決めて実装してください。
システムスキンの各シーンファイル
システムスキンは以下のシーンごとにファイルを分けています。
_00_global.lua
スキン用定数の定義
_01_lane.lua
レーン
_02_title.lua
タイトル
_03_playmode.lua
ログイン・プレイモード選択
_04_gamemode.lua
ゲームモード選択
_05_songselect.lua
曲選択
_06_game.lua
ゲーム画面
_07_result.lua
結果画面
_08_courseresult.lua
コース結果画面
script.lua
では上記ファイルのinclude処理と、スクリプトロード時に1度だけ呼び出される
OnInitSystem()
関数のみが記述されています。