设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 450|回复: 2
打印 上一主题 下一主题

[有事请教] 请问有什么办法可以突破RGB的图片大小限制吗?

[复制链接]

Lv4.逐梦者

梦石
8
星屑
2917
在线时间
364 小时
注册时间
2020-10-12
帖子
42
跳转到指定楼层
1
发表于 2023-11-6 17:42:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
请问有什么办法可以突破RGB的图片大小限制吗?因为现在在进行游戏的时候,有时候会读取不到大型图片然后闪退。但是再一次读取又好了。
所以想询问一些有没有什么办法可以让游戏能正常运行呢?

差分图片是最后不得已的手段了,因为有好多区域都用了大图片。

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20970
在线时间
9334 小时
注册时间
2012-6-19
帖子
7106

开拓者短篇九导演组冠军

2
发表于 2023-11-6 21:27:48 | 只看该作者
本帖最后由 喵呜喵5 于 2023-11-7 10:47 编辑

查一下RM的内存占用情况,按我自己的经验这种状况一版是大图加载过多把内存爆了
RM为了加速图片的读取,所有已经加载过的图片都会存在缓存里(并且不会去清理),因此游戏长时间运行时占用的内存会越来越大,大到继续加载下一张图片失败时游戏就崩了

  1. class << Cache
  2.   alias m5_20231106_normal_bitmap normal_bitmap
  3.   def normal_bitmap(path)
  4.     m5_20231106_normal_bitmap(path)
  5.     if path.start_with?("Graphics/Pictures/")
  6.       @m5_20231106_cache ||= {}
  7.       @m5_20231106_cache[path] = true
  8.     end
  9.     @cache[path]
  10.   end
  11.   def m5_20231106_clear
  12.     @m5_20231106_cache ||= {}
  13.     @m5_20231106_cache.keys.each do |key|
  14.       @cache[key].dispose
  15.       @cache[key] = nil
  16.     end
  17.     @m5_20231106_cache.clear
  18.     GC.start
  19.   end
  20. end
复制代码


你可以插入这段脚本,然后挑选合适的时机(例如游戏每个章节结束后)在事件脚本中执行 Cache.m5_20231106_clear ,它会把加载到内存中的所有 Graphics/Pictures/ 目录下已经加载过的文件的缓存都清空,防止爆内存

点评

好厉害,太谢谢了!  发表于 2023-11-7 09:25

评分

参与人数 1+1 收起 理由
小怪兽奇奇侠 + 1 真乃高手也!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-30 10:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表