実験 800x450 公開中

セーブ・ロードのサンプル

投稿者:akasata 投稿日時: 2013/08/21 22:18:34
セーブ・ロードのサンプルです。
閲覧: 155 評価: 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 end scene :start_scene do |scene| scene.loading do |loader| loader.load_data :game_data, "savedata", :scope => :private end scene.on_init do speak("セーブ・ロードのサンプルです") speak("ロード結果:#{game.loaded_data_result[:game_data]}") speak("前回の保存データ:#{game.loaded_data[:game_data]}") result = show_select_window(scene, "選択してください", ["保存1","保存2","終了する"]) case result when "保存1" data = {:data => "save data1"} speak("保存1を選びました。保存内容:#{data}") data2 = {:data => "日本語1234"} game.logger.info("#{data2.to_s}") game.load_wait do |loader| loader.save_data "savedata", data, :scope => :private end when "保存2" data = [rand(100)] speak("保存2を選びました。保存内容:#{data}") game.load_wait do |loader| loader.save_data "savedata", data, :scope => :private end when "終了する" speak("保存のテストを終了します") game.change_project "start_menu" else speak("ここには来ないはず") scene_change :start_scene end scene_change :start_scene end end # 以下、選択肢を表示する関数 # この関数をコピペして使ってください def show_select_window(scene, message, selecteds = []) result = -1 loop_flag = true sprites = [] if selecteds.length == 0 speak("選択肢がありません") return -1 elsif selecteds.length == 1 points = [[350, 100]] elsif selecteds.length == 2 points = [[350, 120], [350, 240]] elsif selecteds.length == 3 points = [[350, 100], [350, 200], [350, 300]] else points = [[350, 80], [350, 160], [350, 240], [350, 320]] end # メッセージの表示 text = scene.text :position => [200, 410] text.set_text_area_size 500, 300 text.set_font_point_size 32 text.set_text(message) sprites << text # 選択肢の表示 index = 0 selecteds.each do |item| text = scene.text :position => points[index] text.set_text_area_size 240, 70 text.set_font_point_size 32 text.set_text(item) sprites << text text.event :on_click do |event| # 結果をセット result = item # 足止め処理を終了する loop_flag = false # 選択肢を表示しているスプライトを削除 sprites.each do |sprite| sprite.delete end end index += 1 end # 選択肢が選択されるまで処理を足止め while loop_flag # wait_time関数を呼ばないとビジーループになってしまう wait_time(50) end result end
コード一覧
  • start.rb

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

コメント一覧
お知らせ

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