RPGツクールMV

Window_Selectableの共通処理をまとめるSceneを作ってみた

Window_Selectableでボタンを押したときの処理を作るには、以下のように setHandler メソッドを使って、実行したいメソッドを指定する必要があります。

ボタンが1つならまだいいですが、確認ボタンなども作ったりするとボタン処理を書くのが面倒です。

そこでキャンセルした時などの共通処理をまとめるSceneを定義したIndexMenuBase.jsを作ってみました。

Window_Selectableの共通処理をまとめるScene

IndexMenuBase.jsを再利用して建設メニューっぽいものを作る

IndexMenuBase.jsを利用して、建設メニューを表示するBuildMenu.jsを作ってみました。

サンプルコード

サンプルコード実行結果

Window_Selectableの共通処理をまとめるSceneを作る イベントの設定 Window_Selectableの共通処理をまとめるSceneを作る 実行結果

確認ウィンドウの生成やボタンを押したときの処理をIndexMenuBase.jsにまとめたおかげで、BuildMenu.jsの記述がすこし短くなりました。

プラグインを追加するときは、IndexMenuBase.jsをBuildMenu.jsの前に読み込む必要があります。

ツール→プラグイン管理のリストの上から順番に読み込まれるので、IndexMenuBase→BuildMenuの順番にしておきます。
Window_Selectableの共通処理をまとめるSceneを作る プラグインの順番

確認ウィンドウで「はい」を押した時にはScene_IndexMenuBaseの execute メソッドが実行されるので、呼び出し側(Scene_BuildMenu)でexecuteメソッドを上書き(オーバーライド)してやればいいです。

確認ウィンドウに表示されるメッセージは、 confirmMessageメソッドで定義しています。
こちらもオーバーライドすることで、好きなメッセージを表示することができます。

選択している項目は this._indexWindow.item()で取得できます。

サンプルコードでは、BuildItemという独自のクラス(オブジェクト)を作っています。

確認ウィンドウを表示するかしないかは setConfirmメソッドを使って切り替えることができます。

確認コマンドは、はい/いいえの文言と、デフォルトの選択肢を変更できます。


Window_Selectableの共通処理をまとめるSceneを作る コマンド名の変更

データを変えれば、いろいろなメニューを作ることができます。