コマンドメニューを表示する前に、メインメニューでボタン入力を待たせたいのですが。それを実現するためのスクリプト呼び出しは何ですか?
どの入力を待っているのかを具体的に説明するのは難しいのですが、そのためにカスタムスクリプトを作成しました。
基本的な考え方は、まず問題を小さなパーツに分解することです。
- まず、コマンドウィンドウを非表示(閉じた状態)で開始する必要があります。これには
opennessプロパティを使用します。これは、ほぼコストなしで素早いアニメーションを実現できるからです。 - 次に、入力(ボタン押下)をチェックします。対応するボタンが押されると、ウィンドウが「開きます」。
また、メニューをX(キャンセル)で終了できるようにしました。通常、この機能はウィンドウの状態に依存するため、このままだとウィンドウを開いてXを押すまでメニューから抜け出せなくなってしまうからです。
以下が完全なスクリプトです。
class Window_MenuCommand < Window_Command
alias oz_waitforopen_initialize initialize
def initialize
oz_waitforopen_initialize
# ウィンドウを閉じた状態で開始
self.openness = 0
end
end
class Scene_Menu < Scene_MenuBase
alias oz_waitforopen_update update
def update
oz_waitforopen_update
# ウィンドウが閉じているかチェック
if @command_window.close?
# Zが押されたら開く
if Input.trigger?(:C)
@command_window.open
# Xが押されたらメニューを閉じる
elsif Input.trigger?(:B)
return_scene
end
end
end
end
入力をポーリングしている特定の行は Input.trigger です。ZがC、XがBに対応していることに気づくかもしれませんが、なぜそのような対応になっているのでしょうか?以下に視覚的な参考資料を示します。
「いいね!」 1
んー…うまくいかなかったよ。でも、質問のためにまるまるスクリプトを書いてくれて本当に感謝してる
ボタン入力を待たずにコマンドメニューが開いちゃうんだ。他のスクリプトと同じ要領で挿入したんだけど
このドラフト、もう5時間も放置してたんだ。ちょっとプレイテストを続けてみたら、メインメニューのコマンドメニューを隠すはずが、インベントリの中に隠れちゃった!ははは
プロジェクトで独自のスクリプトを使用していますか?

