実験 800x450 公開中

選択肢を表示する関数

投稿者:akasata 投稿日時: 2013/07/18 22:37:03
ikosamiさんにインスパイアされて作りました。
選択肢を表示する関数です。

選択項目4つまでの選択肢に対応しています。
閲覧: 251 評価: 0
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
  • Starwhite
あなたはまだ評価していません。
game.loading do |loader| loader.add :window, :system => "window" loader.add :gui_item, :system => "gui_item" end game.on_init do set_window_image :window set_gui_image :gui_item scene_change :start_scene speak("選択肢を表示する関数のテストです") speak("ikosamiさんにインスパイアされて作ってみました。") speak("コピペしようが改変しようが自由に使ってください。") end # 選択肢の結果を保存する変数 select_result = {} # 選択肢を表示するシーン scene :start_scene do |scene| scene.on_init do show_select_window( scene, :select_result_scene, select_result, "選択してください", [ "選択肢1", "選択肢2", "選択肢3", "選択肢4" ] ) end end # 選択肢の結果を表示するシーン scene :select_result_scene do case select_result[:result] when "選択肢1" speak("選択肢1を選択しました") when "選択肢2" speak("選択肢2を選択しました") when "選択肢3" speak("選択肢3を選択しました") when "選択肢4" speak("選択肢4を選択しました") else speak("ここには来ないはず") end speak("選択肢を表示する関数のテストに戻ります") scene_change :start_scene end # 以下、選択肢を表示する関数 def show_select_window(scene, scene_name, select_result, message, selecteds = []) if selecteds.length == 0 speak("選択肢がありません") return -1 end # メッセージの表示 text = scene.text :position => [300, 410] text.set_text_area_size 250, 200 text.set_font_point_size 32 text.set_text(message) text.set_color 255, 0, 0, 255 # 選択肢の座標のリスト points = [ [50, 100], [250, 100], [450, 100], [650, 100] ] # 選択肢の表示 index = 0 selecteds.each do |item| text = scene.text :position => points[index] text.set_text_area_size 250, 200 text.set_font_point_size 32 text.set_text(item) text.event :on_click do |event| select_result[:result] = item scene_change scene_name end index += 1 end end
コード一覧
  • start.rb

コメントするには、ログインする必要があります。

コメント一覧
Thumb 21
ikosami (投稿日:2013/07/18 23:20:34)

さっそく使ってみます(^^)

思ったのですが、選択肢の座標のリストを
「選択肢がありません」の所にelsifで追加して
選択肢の数によって選択肢の位置をずらすと見やすいかもです。
計算で求めてもいいのですが、文字数によって微調整できなくなるので
とりあえず手動で(^^;)

if selecteds.length == 0
speak("選択肢がありません")
return -1
elsif selecteds.length == 1
points = [
[350, 100],
]
elsif selecteds.length == 2
points = [
[150, 100],
[550, 100]
]
elsif selecteds.length == 3
以下略

というような感じです。とりあえず動作確認済みです。
Thumb 1
akasata (投稿日:2013/07/18 23:41:11)

おお、いいアイディアですね。
実はこっそりとここでもRmake記法が使えるので、ソースコードを整形して貼り付けることもできますよ

if selecteds.length == 0 
  speak("選択肢がありません") 
  return -1 
#以下略
Thumb 21
ikosami (投稿日:2013/07/19 00:27:06)

使えたんですか(^^)


いこさみの探検

とりあえず、これ使ってゲーム作ってみました。
画像が一枚もでてこないですけね(^^;)

コメントするには、ログインする必要があります。


お知らせ

2014/03/04 ver. 0.1.39 を公開しました!
・0.1.36でWindowsで起動しない問題を修正しました
(Android版はバージョン番号のみの変更です。)

2014/03/04 ver. 0.1.36 を公開しました!
・アプリケーションアイコンを変更しました
・セーブ・ロードを繰り返すとアプリが強制終了する問題を修正しました
・他、重大なバグを修正しました

ダウンロードはこちらから。

2013/07/17 Code on Rmakeをα公開しました!