# 当たり判定描画モードの設定
game.draw_collision_mode false
# ゲーム全体のローディング処理
game.loading do |loader|
# 画像ファイルのローディング
loader.add :window, :system => "window"
loader.add :gui_item, :system => "gui_item"
loader.add :room, 15
loader.add :chest_key, 10
loader.add :right_yellow, 14
loader.add :left_yellow, 13
loader.add :room2, 16
loader.add :key, 12
loader.add :congratulation, 11
end
# アイテム取得状況管理用変数の設定
key1_got = false
key1 = false
key2_got = false
key2 = false
# ゲーム全体の初期化処理
game.on_init do
# speak用画像の設定
set_window_image :window
set_gui_image :gui_item
# 最初のシーンへ遷移
scene_change :start
end
# 最初のシーン
scene :start do |scene|
# シーンの初期化処理
scene.on_init do
# メッセージの表示
speak "誰かに捕まったらしい。\n脱出しなくては。"
# 部屋1のシーンへ遷移
scene.change :room1
end
end
# 部屋1のシーン
scene :room1 do |scene|
# 部屋1のシーン
scene.on_init do
# 部屋の背景
scene.add :image, :texture => :room, :align => :fullscreen
# 部屋2へ移るマーク
scene.add :image, :name => :allow_right, :texture => :right_yellow, :center_position => [350 + 400, 0 + 230], :scale => [2, 5]
# 扉の当たり判定
scene.add :collision, :name => :door, :center_position => [260.0 + 400, 10.0 + 230], :scale => [100.0, 165.0]
# 鍵1を取得したかどうかの判定
unless key1_got
# 鍵1のスプライト
scene.add :image, :name => :key1, :texture =>:key, :center_position => [-70.0 + 400, 40.0 + 230], :scale => [2.0, 2.0]
# 鍵1のスプライトをクリックしたときのイベント
scene.event :key1, :on_click do
speak "鍵1を手に入れた。"
# 鍵1のスプライトを削除
scene.delete :key1
# 鍵1を持っている状態に
key1 = true
# 鍵1を取った状態に
key1_got = true
end
end
# 部屋2へ移るマークをクリックした場合のイベント
scene.event :allow_right, :on_click do
# 部屋2のシーンへ遷移
scene.change :room2
end
# ドアをクリックした場合のイベント
scene.event :door, :on_click do
speak "鍵が閉まっている。"
if key2
# 鍵2を持っている場合
speak "鍵2を使ってみた。"
speak "鍵が開いた!"
# エンディングへ
scene.change :congratulation
elsif key1
# 鍵1を持っている場合は使ってみるが開かない
speak "鍵1を使ってみた。"
speak "扉は開かない・・・"
end
end
end
end
# 部屋2のシーン
scene :room2 do |scene|
# 部屋2のシーンの初期化
scene.on_init do
# 部屋の背景のスプライト
scene.add :image, :texture => :room2, :align => :fullscreen
# 部屋1への遷移マークのスプライト
scene.add :image, :name => :allow_left, :texture => :left_yellow, :center_position => [-350.0 + 400, 0.0 + 230], :scale => [2.0, 5.0]
# 引き出しのスプライト
scene.add :collision, :name => :chest1, :center_position => [220.0 + 400, -40.0 + 230], :scale => [200.0, 45.0]
scene.add :collision, :name => :chest2, :center_position => [220.0 + 400, 10.0 + 230], :scale => [200.0, 45.0]
scene.add :collision, :name => :chest3, :center_position => [220.0 + 400, 60.0 + 230], :scale => [200.0, 45.0]
scene.add :collision, :name => :chest4, :center_position => [220.0 + 400, 110.0 + 230], :scale => [200.0, 45.0]
scene.add :collision, :name => :chest5, :center_position => [220.0 + 400, 160.0 + 230], :scale => [200.0, 45.0]
# 部屋1への遷移マークをクリックしたときのイベント
scene.event :allow_left, :on_click do
# 部屋1へ遷移
scene.change :room1
end
# 引き出しを調べたとき
scene.event :chest1, :on_click do
speak "何もない・・・"
end
scene.event :chest2, :on_click do
speak "何もない・・・"
end
scene.event :chest3, :on_click do
if key2_got
# すでに鍵2をとっている場合
speak "何もない・・・"
else
speak "鍵がかかっている。"
if key1
# 鍵1を持っている場合
speak "鍵1で開けてみた!"
# 鍵2取得のシーンへ
scene.change :chest_key
# 鍵1を持っていない状態に
key1 = false
end
end
end
scene.event :chest4, :on_click do
speak "何もない・・・"
end
scene.event :chest5, :on_click do
speak "何もない・・・"
end
end
end
# 鍵2取得のシーン
scene :chest_key do |scene|
# 鍵2取得のシーンの初期化
scene.on_init do
# 鍵2取得画像の表示
scene.add :image, :texture => :chest_key, :align => :fullscreen
speak "鍵2を手に入れた!"
# 鍵2を取った状態に
key2_got = true
# 鍵2を持っている状態に
key2 = true
# 部屋2のシーンへ戻る
scene.change :room2
end
end
#エンディングのシーン
scene :congratulation do |scene|
#エンディングのシーン初期化
scene.on_init do
# エンディング画像の表示
scene.add :image, :texture => :congratulation, :align => :fullscreen
speak "脱出に成功した!"
speak "おめでとう!"
# スタートメニューへ
game.change_project "start_menu"
end
end