| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 0 |
| 经验 | |
| 最后登录 | 2025-5-10 |
| 在线时间 | 3 小时 |
- 梦石
- 0
- 星屑
- 45
- 在线时间
- 3 小时
- 注册时间
- 2025-4-28
- 回帖
- 0
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
报错日志:
[pre lang="log"]Script 'Cache' line 100: RGSSError occurred.
failed to create bitmap[/pre]
报错代码:
[pre lang="ruby"]# encoding: utf-8
#==============================================================================
# ■ Cache
#------------------------------------------------------------------------------
# 各種グラフィックを読み込み、Bitmap オブジェクトを作成、保持するモジュール
# です。読み込みの高速化とメモリ節約のため、作成した Bitmap オブジェクトを内部
# のハッシュに保存し、同じビットマップが再度要求されたときに既存のオブジェクト
# を返すようになっています。
#==============================================================================
module Cache
#--------------------------------------------------------------------------
# ● アニメーション グラフィックの取得
#--------------------------------------------------------------------------
def self.animation(filename, hue)
load_bitmap("Graphics/Animations/", filename, hue)
end
#--------------------------------------------------------------------------
# ● 戦闘背景(床)グラフィックの取得
#--------------------------------------------------------------------------
def self.battleback1(filename)
load_bitmap("Graphics/Battlebacks1/", filename)
end
#--------------------------------------------------------------------------
# ● 戦闘背景(壁)グラフィックの取得
#--------------------------------------------------------------------------
def self.battleback2(filename)
load_bitmap("Graphics/Battlebacks2/", filename)
end
#--------------------------------------------------------------------------
# ● 戦闘グラフィックの取得
#--------------------------------------------------------------------------
def self.battler(filename, hue)
load_bitmap("Graphics/Battlers/", filename, hue)
end
#--------------------------------------------------------------------------
# ● 歩行グラフィックの取得
#--------------------------------------------------------------------------
def self.character(filename)
load_bitmap("Graphics/Characters/", filename)
end
#--------------------------------------------------------------------------
# ● 顔グラフィックの取得
#--------------------------------------------------------------------------
def self.face(filename)
load_bitmap("Graphics/Faces/", filename)
end
#--------------------------------------------------------------------------
# ● 遠景グラフィックの取得
#--------------------------------------------------------------------------
def self.parallax(filename)
load_bitmap("Graphics/Parallaxes/", filename)
end
#--------------------------------------------------------------------------
# ● ピクチャ グラフィックの取得
#--------------------------------------------------------------------------
def self.picture(filename)
load_bitmap("Graphics/Pictures/", filename)
end
#--------------------------------------------------------------------------
# ● システム グラフィックの取得
#--------------------------------------------------------------------------
def self.system(filename)
load_bitmap("Graphics/System/", filename)
end
#--------------------------------------------------------------------------
# ● タイルセット グラフィックの取得
#--------------------------------------------------------------------------
def self.tileset(filename)
load_bitmap("Graphics/Tilesets/", filename)
end
#--------------------------------------------------------------------------
# ● タイトル(背景)グラフィックの取得
#--------------------------------------------------------------------------
def self.title1(filename)
load_bitmap("Graphics/Titles1/", filename)
end
#--------------------------------------------------------------------------
# ● タイトル(枠)グラフィックの取得
#--------------------------------------------------------------------------
def self.title2(filename)
load_bitmap("Graphics/Titles2/", filename)
end
#--------------------------------------------------------------------------
# ● ビットマップの読み込み
#--------------------------------------------------------------------------
def self.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
#--------------------------------------------------------------------------
# ● 空のビットマップを作成
#--------------------------------------------------------------------------
def self.empty_bitmap
Bitmap.new(32, 32) # 报错代码
end
#--------------------------------------------------------------------------
# ● 通常のビットマップを作成/取得
#--------------------------------------------------------------------------
def self.normal_bitmap(path)
@cache[path] = Bitmap.new(path) unless include?(path)
@cache[path]
end
#--------------------------------------------------------------------------
# ● 色相変化済みビットマップを作成/取得
#--------------------------------------------------------------------------
def self.hue_changed_bitmap(path, hue)
key = [path, hue]
unless include?(key)
@cache[key] = normal_bitmap(path).clone
@cache[key].hue_change(hue)
end
@cache[key]
end
#--------------------------------------------------------------------------
# ● キャッシュ存在チェック
#--------------------------------------------------------------------------
def self.include?(key)
@cache[key] && !@cache[key].disposed?
end
#--------------------------------------------------------------------------
# ● キャッシュのクリア
#--------------------------------------------------------------------------
def self.clear
@cache ||= {}
@cache.clear
GC.start
end
end[/pre]
游戏总是没有缘由的闪退,用x32dbg下断点查了一下发现有一个没显示的弹窗,居然是无法创建bitmap
尝试复现时发现游戏在缓慢的增加最低内存占用,疑似跟内存泄漏有关
在网上查了一下基本都是因为加密打包,跟我的情况没关系
请问各位有什么解决方法吗,逆向rgss的伪代码看的头疼 |
|