ゲーム 800x450 公開中

いこさみの探検 Ver1.2.0

投稿者:ikosami 投稿日時: 2013/07/19 00:21:04
小さな子いこさみが探検に出かけるゲームです。
エンディングは全6種類あります。
Ver.1.2.0
選択肢が見にくかったので背景追加
Ver.1.1.5
背景を単色ではなく
ちゃんと画像で表示
Ver.1.1.0
背景を常に表示
選択肢関数利用を2行で表示して少し見やすく。
Ver.1.0.0
ゲームブック形式のゲームなら簡単に作れると思い
早速作って公開
閲覧: 474 評価: 30
  • 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" 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
コード一覧
  • start.rb

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

コメント一覧
Thumb 21
ikosami (投稿日:2013/07/22 23:50:29)

とりあえず、選択肢後の文章表示中に背景が消えないようにしました。
Thumb 1
akasata (投稿日:2013/07/25 12:03:57)

おお、かなりゲームっぽくなってきましたね(^^)
背景が付くと、文字が若干読みにくくなるので、選択肢に背景を入れたくなりますね~。
Thumb 21
ikosami (投稿日:2013/07/25 12:49:49)

入れました~(^^)
Thumb 1
akasata (投稿日:2013/07/25 14:59:22)

おお

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


Thumb 1
akasata (投稿日:2013/07/19 15:21:00)

おお、いいですね~。
でも、選択肢は本家Rmakeの関数の方が使いやすい気がします。
ああいう関数を実現するにはちょっとまだ機能が足りてないので、Code on Rmakeの課題ですね。

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


お知らせ

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をα公開しました!