vrubyの勉強として脱出ゲームを作るというお話の続きです。
前回の記事
> http://freef5.seesaa.net/article/136398360.html
今回も「画像」の扱いについてです。
前回は単純にゲームで使う画像をフォルダにまとめておいたんでは
中の画像を閲覧されてしまうと仕掛けがばれてしまうという話をしました。
それを防ぐ方法のひとつとして、画像を文字列に変換してプログラムに埋め込んでしまうのはどうかという例を示しました。
今回はもうひとつの方法です。
画像をあらかじめ全部配列などに納めてしまって、
それを簡単には閲覧できないセーブファイルにあらかじめ変換して用意しておくのはどうでしょうか。
そのために今回は「Marshal形式」で保存します。
あらかじめ画像を呼び出して配列にまとめ
それをセーブファイルに置き換えるプログラムを書いておくことにしましょうか。
例えば
─────────────
#! ruby -Ks
require 'vr/vruby'
class TamesiForm < VRForm
@gazou = []
@gazou[0] = SWin::Bitmap.loadFile("bamen1.bmp")
@gazou[1] = SWin::Bitmap.loadFile("bamen2.bmp")
#セーブ↓
open("gazou_save1","wb"){|f| Marshal.dump @gazou,f}
end
─────────────
こんな感じでしょうか。
この場合は画像を納めた配列 @gazou を gazou_save1 という名前のセーブファイルにしてます。
こうしてできたセーブファイルをプログラムで使うことにすれば中に収められた画像を見られることは避けられると思います。
どんな画像をどんな順番で入れたかは忘れないようにしたいですが(^-^;)
セーブファイルを戻すときは上の例だと
@gazou = open("gazou_save1","rb"){|f| Marshal.load(f)}
となります。
これを本番のプログラムで使って元の配列に戻して利用するわけです。
今回はこちらを使って話を進めようかと思いますが今回はひとまずここまでとします。
今回もどこか間違ってたら暖かいツッコミをお願いいたします。
人気ブログランキングに参加してます。
ポチッ!としてくださると嬉しいです。
にほんブログ村