メニュー画面に項目を追加したいです。
使用ソフトはVX Aceです。
メニュー画面に(たとえば)「ジャンプ」という項目を追加し、その「ジャンプ」を選択した時にコモンイベント1番を実行するよう設定する…といった事をしたいのですが、スクリプトエディタでどのように記述・変更したらいいですか?
備考
・ツクールの新規プロジェクトを作成し、その初期状態からスタートした状態で、上記の設定をする場合の質問です。
・そのため、何もプラグインは導入していない状態とします。
・また、スクリプトエディタの既存の項目も何も変更していません。
・私はRGSS3についてまだほとんど何も理解できていません。ご了承ください
メニュー画面に項目を追加したいです
Re: メニュー画面に項目を追加したいです
まずヘルプに記載されているスクリプト入門は全て読みましたか?
それが前提知識になるんですけど
①Window_MenuCommandに項目を追加する
②追加した項目のハンドラにメソッドを結びつける
の二点で実装出来ると思います。
①はメニューウィンドウには元からユーザ定義用のコマンドを追加する為の余白があるのでそこに追加します。
競合対策にaliasで元の処理を退避させる事も忘れずに
②はまずコマンド「ジャンプ」が決定された時に実行されるメソッドを定義し
コマンドウィンドウの作成をする時にハンドラに紐づける感じですね。
$game_temp.reserve_common_event(コモンイベントID)でコモンイベント起動予約する事が可能です。
「予約」であって即座にコモンイベントが実行される訳ではないのですが、
メニューシーン内でコモンイベントを実行しようと思うと
インタプリタを新たに用意しなければいけないので少し面倒ですね。
質問が明確であれば回答しますけど、
詳しい挙動に関しては検索したり適当に処理を追加/削除しながら調べてください。
それが前提知識になるんですけど
①Window_MenuCommandに項目を追加する
②追加した項目のハンドラにメソッドを結びつける
の二点で実装出来ると思います。
①はメニューウィンドウには元からユーザ定義用のコマンドを追加する為の余白があるのでそこに追加します。
競合対策にaliasで元の処理を退避させる事も忘れずに
コード: 全て選択
class Window_MenuCommand < Window_Command
#--------------------------------------------------------------------------
# ○ 独自コマンドの追加用
#--------------------------------------------------------------------------
alias :_old_add_original_commands :add_original_commands
def add_original_commands
_old_add_original_commands
add_command("ジャンプ", :jump)
end
end
コマンドウィンドウの作成をする時にハンドラに紐づける感じですね。
$game_temp.reserve_common_event(コモンイベントID)でコモンイベント起動予約する事が可能です。
「予約」であって即座にコモンイベントが実行される訳ではないのですが、
メニューシーン内でコモンイベントを実行しようと思うと
インタプリタを新たに用意しなければいけないので少し面倒ですね。
コード: 全て選択
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ○ コマンドウィンドウの作成
#--------------------------------------------------------------------------
alias :_old_create_command_window :create_command_window
def create_command_window
_old_create_command_window
@command_window.set_handler(:jump, method(:command_jump))
end
#--------------------------------------------------------------------------
# ● コマンド「ジャンプ」
#--------------------------------------------------------------------------
def command_jump
$game_temp.reserve_common_event(1)
return_scene
end
end
詳しい挙動に関しては検索したり適当に処理を追加/削除しながら調べてください。
Re: メニュー画面に項目を追加したいです
>名無し蛙様
ありがとうございます。無事に望んでいた通りの設定ができました。
RGSS3についてまだ勉強中の身なので適切な質問のしかたも分かっていない状態ですが、また今後質問することがあれば是非よろしくおねがいします。
ありがとうございます。無事に望んでいた通りの設定ができました。
RGSS3についてまだ勉強中の身なので適切な質問のしかたも分かっていない状態ですが、また今後質問することがあれば是非よろしくおねがいします。