game.loading do |loader|
loader.add :window, :system => "window"
loader.add :gui_item, :system => "gui_item"
loader.add :bac, 34#背景の画像を読み込んで名前をつけている
loader.add :bac1, 56#家
loader.add :bac2, 57#池
loader.add :bac3, 58#森
loader.add :bac4, 59#別荘
loader.add :bac5, 60#室内
loader.add :bac6, 62#谷
loader.add :bac7, 63#水
loader.add :bac8, 64#崖
loader.add :select_bac, 83#選択肢背景
end
game.on_init do
set_window_image :window
set_gui_image :gui_item
scene_change :s1
end
# 選択肢の結果を保存する変数。これがないとシーン変わった時に
#変数が消えてどの選択肢を選んだかが分からなくなる。
select_result = {}
# プロローグ
scene :s1 do |scene|
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景 #背景の表示
scene.on_init do
speak("僕はいこさみ")
speak("今から旅に出ようと思っている")
speak("理由は特にないけれど\n何か見つかるといいなー")
scene_change :s0000
end
end
# 選択肢を表示するシーン
scene :s0000 do |scene|
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"どこへいこう", [ "森", "海"])
end
end
scene :s0001 do |scene|
scene.add :image, :texture => :bac3, :align => :fullscreen#森
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"分かれ道だ", [ "左へ", "まっすぐ", "右へ"])
end
end
scene :s0002 do |scene|
scene.add :image, :texture => :bac8, :align => :fullscreen#崖
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"崖だ・・・", [ "降りる", "引き返す"])
end
end
scene :s0003 do |scene|
scene.add :image, :texture => :bac6, :align => :fullscreen#谷
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"川がある。どうしよう?", [ "上流へ", "泳ぐ", "下流へ"])
end
end
scene :s0004 do |scene|
scene.add :image, :texture => :bac7, :align => :fullscreen#水背景
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"砂浜に来た どうしよう?", [ "貝殻を探す", "泳ぐ"])
end
end
scene :s0005 do |scene|
scene.add :image, :texture => :bac2, :align => :fullscreen
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"池に来た どうしよう?", [ "冒険を続ける", "泳ぐ"])
end
end
scene :s0006 do |scene|
scene.add :image, :texture => :bac3, :align => :fullscreen#森
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"道が分からなくなってしまった", [ "諦めない", "諦める"])
end
end
scene :s0007 do |scene|
scene.add :image, :texture => :bac4, :align => :fullscreen#別荘
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"ここは・・・魔王の城?", [ "堂々と入る", "こそこそ入る", "諦める"])
end
end
scene :s0008 do |scene|
scene.add :image, :texture => :bac2, :align => :fullscreen
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"洞窟だ・・・", [ "入る", "入らない"])
end
end
scene :s999 do |scene|
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景
scene.on_init do
show_select_window(scene,:select_result_scene,select_result,
"どうしますか?", [ "もう一度", "終わる"])
end
end
# 選択肢の結果を表示するシーン
scene :select_result_scene do |scene|
case select_result[:result]
when "森"
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景
speak("「森へ行こう」")
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「道が険しいな・・・」")
scene_change :s0001
when "左へ"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「左へ行こう」")
speak("「さらに険しくなったぞ!」")
scene_change :s0002
when "右へ"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「右へ行こう」")
speak("「あ! 洞窟だ!」")
scene_change :s0008
when "入る"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「せっかく見つけたんだし、行ってみよう!」")
speak("「あれ?案外狭い・・・\nでもこの広さは秘密基地にちょうどいいぞ!」")
speak("エンディング No6 秘密基地開拓")
scene_change :s999
when "入らない"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「まっくらだしやめておこう・・・」")
speak("「ん?あっちに崖があるぞ・・・」")
scene_change :s0002
when "まっすぐ"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「まっすぐ進もう!」")
scene.add :image, :texture => :bac2, :align => :fullscreen
speak("「おお! 池だ!」")
scene_change :s0005
when "冒険を続ける"
scene.add :image, :texture => :bac2, :align => :fullscreen
speak("「いやいや、ここ前にも来たことあるよ\n先へ進もう」")
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「・・・・・・あれ? ここどこだっけ?」")
scene_change :s0006
when "諦める"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「もう無理だ。諦めよう・・・」")
speak("「僕はもうここで終わりなんだ・・・」")
speak("エンディング No4 諦め早すぎ")
scene_change :s999
when "諦めない"
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「とりあえず前へ進もう・・・」")
scene.add :image, :texture => :bac4, :align => :fullscreen
speak("「・・・ん? なんだこれは魔王の城か?」")
scene_change :s0007
when "堂々と入る"
scene.add :image, :texture => :bac5, :align => :fullscreen
speak("「すみませーん 誰かいませんかー?」")
speak("「あ、だれか出てきた。魔王か!?」")
speak("「・・・っておばあちゃん!」")
speak("エンディング No5 祖父母の隠れ家")
scene_change :s999
when "こそこそ入る"
scene.add :image, :texture => :bac4, :align => :fullscreen#別荘
speak("「ここが・・・魔王の城か・・・」")
speak("「もしかしたらお宝があって、\n大金持ちになれるかも!」")
scene.add :image, :texture => :bac5, :align => :fullscreen
speak("「・・・あ、これ凄く高そうだ!\nもらっていこう!」")
speak("「うわっ どうしよう・・・\n重すぎて持てなくて割っちゃったよ・・・」")
speak("「わっ、まずい! 魔王に気付かれたか!\n誰か来るぞ!」")
speak("「すごいスピードだ! とても逃げられない!\nもうおしまいだ!」")
speak("「・・・っておじいちゃん!」")
speak("エンディング No6 魔王の壺と説教地獄")
scene_change :s999
when "降りる"
scene.add :image, :texture => :bac8, :align => :fullscreen#崖
speak("「とりあえず崖を下ろう」")
speak("「・・・ふぅ。やっと降りられた\nここは渓谷だろうか?」")
scene_change :s0003
when "引き返す"
scene.add :image, :texture => :bac8, :align => :fullscreen#崖
speak("「仕方がない・・・ 引き返そう・・・」")
scene.add :image, :texture => :bac3, :align => :fullscreen#森
speak("「ってここはどこだ?」")
scene_change :s0006
when "上流へ"
scene.add :image, :texture => :bac6, :align => :fullscreen#谷
speak("「上流の方へ行ってみよう」")
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景
speak("「・・・あれ? ここは・・・」")
speak("川の上流へ進んで行くと、そこにはなんと\n自宅があった・・・\n帰れなくなるよりはいいけど・・・")
speak("エンディング No1 なぜか帰宅")
scene_change :s999
when "泳ぐ"
scene.add :image, :texture => :bac6, :align => :fullscreen#谷
speak("「せっかくだし泳いでみよう」")
speak("「・・・あれ?沈まない・・・」")
speak("「そういえば、いこさみは\n普通の水には浮くんだった・・・\nいこさみ用のプールなら泳げるのに・・・」")
speak("「なんか泳ぎたくなってきた・・・\n家へ帰ろう」")
speak("エンディング No2 いこさみは水に浮く")
scene_change :s999
when "下流へ"
scene.add :image, :texture => :bac6, :align => :fullscreen#谷
speak("「下流の方に行ってみよう」")
speak("「・・・わぁー 海だ!」")
scene_change :s0004
when "海"
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景
speak("「よし、海に行ってみよう」")
scene.add :image, :texture => :bac7, :align => :fullscreen#水背景
speak("「・・・わぁー 広大だ!」")
scene_change :s0004
when "貝殻を探す"
scene.add :image, :texture => :bac7, :align => :fullscreen#水背景
speak("「キレイな貝殻がたくさん落ちてる!\nよしこれを持って帰ろう」")
speak("「今回の冒険は成功だ!\n次はどこに行こうかな・・・」")
speak("エンディング No3 貝殻のきらめき")
scene_change :s999
when "終わる"
scene.add :image, :texture => :bac, :align => :fullscreen#緑背景
speak("ゲームプレーありがとうございました")
# スタートメニューへ
game.change_project "start_menu"
when "もう一度"
scene.add :image, :texture => :bac1, :align => :fullscreen#家背景
speak("僕はいこさみ")
speak("今から旅に出ようと思っている")
speak("理由は特にないけれど\n何か見つかるといいなー")
scene_change :s0000
else
speak("エラー")
scene_change :s999
end
end
# 以下、選択肢を表示する関数
def show_select_window(scene, scene_name, select_result, message, selecteds = [])
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
points = [[150, 100], [325, 100], [550, 100]]
else
# 選択肢の座標のリスト
points = [[50, 100],[250, 100], [450, 100], [650, 100]]
end
# メッセージの表示
scene.add :image, :texture =>:select_bac, :position => [-100,405], :scale => [10.0, 1.0]
text = scene.text :position => [200, 410]
text.set_text_area_size 500, 200
text.set_font_point_size 32
text.set_text(message)
# 選択肢の表示
index = 0
selecteds.each do |item|
scene.add :image, :texture =>:select_bac, :position => [points[index][0]-10,points[index][1]-10]
text = scene.text :position => points[index]
text.set_text_area_size 500, 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