报错日志:
LOG 代码 - Script 'Cache' line 100: RGSSError occurred.
- failed to create bitmap
复制代码
报错代码:
RUBY 代码 - # encoding: utf-8
- #==============================================================================
- # ■ Cache
- #------------------------------------------------------------------------------
- # 各種グラフィックを読み込み、Bitmap オブジェクトを作成、保持するモジュール
- # です。読み込みの高速化とメモリ節約のため、作成した Bitmap オブジェクトを内部
- # のハッシュに保存し、同じビットマップが再度要求されたときに既存のオブジェクト
- # を返すようになっています。
- #==============================================================================
- module Cache
- #--------------------------------------------------------------------------
- # ● アニメーション グラフィックの取得
- #--------------------------------------------------------------------------
- defself.animation(filename, hue)
- load_bitmap("Graphics/Animations/", filename, hue)
- end
- #--------------------------------------------------------------------------
- # ● 戦闘背景(床)グラフィックの取得
- #--------------------------------------------------------------------------
- defself.battleback1(filename)
- load_bitmap("Graphics/Battlebacks1/", filename)
- end
- #--------------------------------------------------------------------------
- # ● 戦闘背景(壁)グラフィックの取得
- #--------------------------------------------------------------------------
- defself.battleback2(filename)
- load_bitmap("Graphics/Battlebacks2/", filename)
- end
- #--------------------------------------------------------------------------
- # ● 戦闘グラフィックの取得
- #--------------------------------------------------------------------------
- defself.battler(filename, hue)
- load_bitmap("Graphics/Battlers/", filename, hue)
- end
- #--------------------------------------------------------------------------
- # ● 歩行グラフィックの取得
- #--------------------------------------------------------------------------
- defself.character(filename)
- load_bitmap("Graphics/Characters/", filename)
- end
- #--------------------------------------------------------------------------
- # ● 顔グラフィックの取得
- #--------------------------------------------------------------------------
- defself.face(filename)
- load_bitmap("Graphics/Faces/", filename)
- end
- #--------------------------------------------------------------------------
- # ● 遠景グラフィックの取得
- #--------------------------------------------------------------------------
- defself.parallax(filename)
- load_bitmap("Graphics/Parallaxes/", filename)
- end
- #--------------------------------------------------------------------------
- # ● ピクチャ グラフィックの取得
- #--------------------------------------------------------------------------
- defself.picture(filename)
- load_bitmap("Graphics/Pictures/", filename)
- end
- #--------------------------------------------------------------------------
- # ● システム グラフィックの取得
- #--------------------------------------------------------------------------
- defself.system(filename)
- load_bitmap("Graphics/System/", filename)
- end
- #--------------------------------------------------------------------------
- # ● タイルセット グラフィックの取得
- #--------------------------------------------------------------------------
- defself.tileset(filename)
- load_bitmap("Graphics/Tilesets/", filename)
- end
- #--------------------------------------------------------------------------
- # ● タイトル(背景)グラフィックの取得
- #--------------------------------------------------------------------------
- defself.title1(filename)
- load_bitmap("Graphics/Titles1/", filename)
- end
- #--------------------------------------------------------------------------
- # ● タイトル(枠)グラフィックの取得
- #--------------------------------------------------------------------------
- defself.title2(filename)
- load_bitmap("Graphics/Titles2/", filename)
- end
- #--------------------------------------------------------------------------
- # ● ビットマップの読み込み
- #--------------------------------------------------------------------------
- defself.load_bitmap(folder_name, filename, hue = 0)
- @cache ||= {}
- if filename.empty?
- empty_bitmap
- elsif hue == 0
- normal_bitmap(folder_name + filename)
- else
- hue_changed_bitmap(folder_name + filename, hue)
- end
- end
- #--------------------------------------------------------------------------
- # ● 空のビットマップを作成
- #--------------------------------------------------------------------------
- defself.empty_bitmap
- Bitmap.new(32, 32)# 报错代码
- end
- #--------------------------------------------------------------------------
- # ● 通常のビットマップを作成/取得
- #--------------------------------------------------------------------------
- defself.normal_bitmap(path)
- @cache[path] = Bitmap.new(path)unlessinclude?(path)
- @cache[path]
- end
- #--------------------------------------------------------------------------
- # ● 色相変化済みビットマップを作成/取得
- #--------------------------------------------------------------------------
- defself.hue_changed_bitmap(path, hue)
- key = [path, hue]
- unlessinclude?(key)
- @cache[key] = normal_bitmap(path).clone
- @cache[key].hue_change(hue)
- end
- @cache[key]
- end
- #--------------------------------------------------------------------------
- # ● キャッシュ存在チェック
- #--------------------------------------------------------------------------
- defself.include?(key)
- @cache[key] && !@cache[key].disposed?
- end
- #--------------------------------------------------------------------------
- # ● キャッシュのクリア
- #--------------------------------------------------------------------------
- defself.clear
- @cache ||= {}
- @cache.clear
- GC.start
- end
- end
复制代码
游戏总是没有缘由的闪退,用x32dbg下断点查了一下发现有一个没显示的弹窗,居然是无法创建bitmap
尝试复现时发现游戏在缓慢的增加最低内存占用,疑似跟内存泄漏有关
在网上查了一下基本都是因为加密打包,跟我的情况没关系
请问各位有什么解决方法吗,逆向rgss的伪代码看的头疼
本帖来自P1论坛作者予纾2606,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=497327 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |