RPGツクールで一味違う選択肢を表示する方法[RGSS] RPGツクールの選択肢というとメッセージウィンドウの右上にちょこんと乗ってるやつですが、それだと少し味気ないと感じることがあるので、他のゲームでよく見る選択肢の表示方法を考えてみました。 何を言ってるか分からないと思いますのでまずは実行画面から これです。 ゲームの選択肢画面といったらこんな感じですよね。 特に装飾等はしていないので無骨な選択肢ですが、骨格はこんな感じです。 以下はマップイベントに実装するコードになります。 そしてスクリプトエディタの方に新しく以下のコードを貼り付けてください。 名前はなんでも結構です。 class Sentakusi def choice $wt1 = Tone.new(100,0,0) #上のウィンドウの色 $win1.tone.set($wt1) $wt2 = Tone.new(0,0,0) #真ん中のウィンドウの色 $win2.tone.set($wt2) $wt3 = Tone.new(0,0,0) #下のウィンドウの色 $win3.tone.set($wt3) cn = 0 loop do Graphics.wait(1) $z = Input.trigger?(:C) $c = Input.trigger?(:B) $u = Input.trigger?(:UP) $d = Input.trigger?(:DOWN) $wt1 = $game_system.window_tone $wt2 = $game_system.window_tone $wt3 = $game_system.window_tone Input.update #上方向キーを押したときの処理 if $u then if cn == 0 then $wt1 = Tone.new(0,0,0) #選択されていない時のウィンドウの色 $win1.tone.set($wt1) $wt2 = Tone.new(0,0,0) #選択されていない時のウィンドウの色 $win2.tone.set($wt2) $wt3 = Tone.new(100,0,0) #選択されている時のウィンドウの色 $win3.tone.set($wt3) cn = 2 elsif cn == 1 then $wt1 = Tone.new(100,0,0) $win1.tone.set($wt1) $wt2 = Tone.new(0,0,0) $win2.tone.set($wt2) $wt3 = Tone.new(0,0,0) $win3.tone.set($wt3) cn = 0 elsif cn == 2 then $wt1 = Tone.new(0,0,0) $win1.tone.set($wt1) $wt2 = Tone.new(100,0,0) $win2.tone.set($wt2) $wt3 = Tone.new(0,0,0) $win3.tone.set($wt3) cn = 1 end #下方向キーを押したときの処理 elsif $d then if cn == 0 then $wt1 = Tone.new(0,0,0) $win1.tone.set($wt1) $wt2 = Tone.new(100,0,0) $win2.tone.set($wt2) $wt3 = Tone.new(0,0,0) $win3.tone.set($wt3) cn = 1 elsif cn == 1 then $wt1 = Tone.new(0,0,0) $win1.tone.set($wt1) $wt2 = Tone.new(0,0,0) $win2.tone.set($wt2) $wt3 = Tone.new(100,0,0) $win3.tone.set($wt3) cn = 2 elsif cn == 2 then $wt1 = Tone.new(100,0,0) $win1.tone.set($wt1) $wt2 = Tone.new(0,0,0) $win2.tone.set($wt2) $wt3 = Tone.new(0,0,0) $win3.tone.set($wt3) cn = 0 end #決定キーを押したときの処理 elsif $z then if cn == 0 then $game_variables[3] = 1 break elsif cn == 1 then $game_variables[3] = 2 break elsif cn == 2 then $game_variables[3] = 3 break end end end #ウィンドウの消去時の処理 $win1.dispose $win2.dispose $win3.dispose $win1 = nil $win2 = nil $win3 = nil end end
スクリプトエディタはこんな感じになります。 スクリプト素材にはせずそのまま載せますが、ご容赦を。 ウィンドウの色を変えたい、ウィンドウの位置を変えたいなどはそれらしき場所をいじくってみて下さい。 これを応用すれば画像を選択肢として使うことが出来ますし、矢印等を表示して選択している項目を示すことも出来ます。 選択肢に長い言葉を入れたいときは変数に代入するか、マップイベントのスクリプトをスクリプトエディタに組み込むなどして工夫してみて下さい。 よくわからないという方はとりあえず数字をいじくり、実行し、結果を見てみて下さい。 それによってどこが実行結果のどの部分にかかわっているかが分かると思います。 ふりーむ様にてRGSS3のリファレンスが公開されました。 RGSSを使ってみたい、RGSSを勉強したいという方は参考になさってください。RGSS3リファレンス イベントコマンド版 にほんブログ村