2022-09-29
RPGツクールVXAce でこのようなエラーが発生することがあります。 >スクリプト 'Cache' の 106 行目で RGSSError が発生しました。 >failed to create bitmap これは、次のような原因でビットマップの生成に失敗したときに発生します。 1. ファイルが壊れていたり画像ではない。 2. キャッシュでメモリが圧迫されている。
## 対策 指定されたファイルが画像ではない場合の対処は、そもそも画像フォルダに画像以外を入れない。 しかし、デフォルトでテキストファイルが入っていたりするので注意が必要。 ファイル指定時に拡張子を省略できるので、画像以外があるとそちらが読み込まれてしまうことがあります。 メモリ圧迫の対策は以下のスクリプトを導入してエラー発生時にキャッシュをクリアします。 ```ruby module Cache def self.normal_bitmap(path) @cache[path] = try_load(path) unless include?(path) @cache[path] rescue RGSSError @__errors ||= {} unless @__errors[path] msgbox( "ビットマップの生成に失敗しました\nゲームを再起動してください\n\n", "Path: #{path.inspect}\n\n", caller[2,5].join("\n") ) @__errors[path] = true end @cache[path] = empty_bitmap end def self.try_load(path) Bitmap.new(path) rescue RGSSError clear # 使用中の画像解放防止のためGCに任せる Bitmap.new(path) end end ``` 動作としては、画像の読み込み失敗時にキャッシュをクリアして再読み込み。 それでも失敗するならエラーメッセージを表示して透明な代替画像を使用しゲームを続行する。 ## 関連記事 - https://gist.github.com/cacao-soft/475050eb0e45dd7c043fa1dbbc06bdf3
コメント






 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。



トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/818-0e1e0711
≪ トップページ ≫
カテゴリー
最近の記事
最近のコメント
タグクラウド

リンク