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

Project1

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

[有事请教] 因PreloaderCore预加载而导致内存过载而闪退,如何补救。

[复制链接]

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
跳转到指定楼层
1
发表于 2020-7-25 03:19:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
加入SRD_PreloaderCore插件后,内存预加载,游戏过程中,内存占用越来越多,直到爆炸闪退。
有没有可以清理缓存的方法?应该说清理预加载以外的缓存,使内存占用率不会随着游戏时间一直增多?

Lv5.捕梦者

梦石
0
星屑
33498
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

15
发表于 2020-7-29 09:00:47 | 只看该作者
CCD0645 发表于 2020-7-28 22:33
感觉写上去没什么反应,你说这个ImageCache是额外需要加的一个插件吗?还是说自带的? ...

肯定是自带的啊,要不然你加上上面的代码就立马报错,或者致使整个插件代码无效。
ImageCache 是MV后来的版本才有的,是对图像数据的储存,管理,释放,,,等功能。
至于你说的看不到效果,个人就不知道实际是什么原因了,或者你可以把限制的改小一些,
默认的是这么多: ImageCache.limit = 10 * 1000 * 1000;
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
14
 楼主| 发表于 2020-7-28 22:33:40 | 只看该作者
芯☆淡茹水 发表于 2020-7-26 21:10
定期?我不知道你的定期是什么时候。
ImageCache 有一个释放预载的功能,但他是根据 ID 来的。
可以把把 ...

感觉写上去没什么反应,你说这个ImageCache是额外需要加的一个插件吗?还是说自带的?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33498
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

13
发表于 2020-7-26 21:10:19 | 只看该作者
本帖最后由 芯☆淡茹水 于 2020-7-26 21:38 编辑
CCD0645 发表于 2020-7-26 20:22
这个我已经有一个插件用于不闪图的,关键是同步必须要用预加载才行。
虽然预加载占内存很大。
有没有办法 ...


定期?我不知道你的定期是什么时候。
ImageCache 有一个释放预载的功能,但他是根据 ID 来的。
可以把把下面的加入脚本
  1. ImageCache.prototype.releaseToBeginning = function(){
  2.     Object.keys(this._items).map(function(key){
  3.         if (this._items[key].reservationId !== ImageManager._systemReservationId) {
  4.           delete this._items[key];
  5.         }
  6.     }, this);
  7. };
  8. ImageManager.releaseToBeginning = function(){
  9.     this._imageCache.releaseToBeginning();
  10. };
复制代码

这是强制清除 除游戏开始时预载的系统图片以外 的所有缓存图片。
用法是 事件-脚本: ImageManager.releaseToBeginning();
什么时候清理你自己搞定,同样没有测试。

还有一种方案,把他的释放限制改一下,只承认 系统预载 的图片。
JAVASCRIPT 代码复制
  1. ImageCache.prototype._mustBeHeld = function(item){
  2.     return item.reservationId === ImageManager._systemReservationId;
  3. };


这个就只需要把上面代码写入脚本,这个不需要手动,达到最大限制时才自动释放到限制的范围内。
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
12
 楼主| 发表于 2020-7-26 20:22:15 | 只看该作者
芯☆淡茹水 发表于 2020-7-26 19:36
ImageManager 的那两个个人常常给搞混~!
虽然不知道你的预载插件是怎样的,但可以用一个笨办 ...

这个我已经有一个插件用于不闪图的,关键是同步必须要用预加载才行。
虽然预加载占内存很大。
有没有办法定期给游戏清一下内存,使其不至于内存爆炸而闪退?因为游戏运行越久,内存越占越多。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33498
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

11
发表于 2020-7-26 19:36:33 | 只看该作者
本帖最后由 芯☆淡茹水 于 2020-7-26 19:38 编辑
CCD0645 发表于 2020-7-26 19:02
还有老板新版之分吗?我发帖的时间也是今年,而且MV是STEAM版的,应该会自动更新吧。
我刚才新建一个工程 ...


ImageManager 的那两个个人常常给搞混~!
虽然不知道你的预载插件是怎样的,但可以用一个笨办法,不用预载图片,让连续显示图片不闪图,但要求多张同步就可能有些办不到
把 Sprite_Picture 的一个方法改成下面这样就行了
  1. Sprite_Picture.prototype.loadBitmap = function() {
  2.     var bitmap = ImageManager.loadPicture(this._pictureName);
  3.     bitmap.addLoadListener(function(){
  4.         this.bitmap = new Bitmap(bitmap.width, bitmap.height);
  5.         this.bitmap.blt(bitmap,0,0,bitmap.width,bitmap.height,0,0);
  6.     }.bind(this));
  7. };
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
10
 楼主| 发表于 2020-7-26 19:02:09 | 只看该作者
芯☆淡茹水 发表于 2020-7-26 08:11
老版的MV,事件解释器没有预载,而现在版本的MV有。
就新开一个工程,连续转换图片显示,没有出现闪图的现 ...

还有老板新版之分吗?我发帖的时间也是今年,而且MV是STEAM版的,应该会自动更新吧。
我刚才新建一个工程,发现问题并没有解决,还是一样闪烁,你说的事件解释器是不是需要手动加载?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14637
在线时间
718 小时
注册时间
2011-7-16
帖子
1428

开拓者

9
发表于 2020-7-26 14:27:25 | 只看该作者
本帖最后由 walf_man 于 2020-7-27 23:46 编辑
CCD0645 发表于 2020-7-26 07:50
https://rpg.blue/thread-480318-1-1.html
看我之前这个贴,最终决定用这个插件词解决问题。 ...


这帖子我看了,js是单线程的,所以会出现顺序显示的问题 ,之所以显示过之后再显示就没有顺序问题,其实是因为缓存了,从内存中读取显示出来速度很快,间隔很多,你感觉不到,但机理还是先显示立绘再显示墨镜的

楼上大佬解答的也很好,你用的版本可能也有关系
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33498
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

8
发表于 2020-7-26 08:11:46 | 只看该作者
老版的MV,事件解释器没有预载,而现在版本的MV有。
就新开一个工程,连续转换图片显示,没有出现闪图的现象。
你使用的插件,要看作者是基于什么情况下所写,如果是针对以前老版没有预载时写的,那么现在有默认预载的MV再加上插件预载,这个预载功能是否重复了呢?!

点评

最新版MV还是有这个问题啊……我们用的是一个软件吗  发表于 2021-11-11 22:09
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 2 反对 0

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
3943
在线时间
396 小时
注册时间
2017-10-11
帖子
154
7
 楼主| 发表于 2020-7-26 07:50:13 | 只看该作者
梦想家大魔王 发表于 2020-7-26 07:27
有什么必须用它的理由吗?
我很久之前试过类似的插件,并不能让我的工程跑得更顺。 ...

https://rpg.blue/thread-480318-1-1.html
看我之前这个贴,最终决定用这个插件词解决问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 11:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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