Project1

标题: “RGSS Player 停止工作”真心纠结啊…… [打印本页]

作者: 天使喝可乐    时间: 2014-5-24 18:08
标题: “RGSS Player 停止工作”真心纠结啊……
目测 是某些电脑有选择性的跳框…… 因为之前在别的电脑上一点事都没有

结果 就这个地图的这段剧情会触发跳框bug……  查了一下貌似是RMXP和WIN7某些地方不兼容的原因?
现在有解决办法吗= =



神奇的是 如果把剧情的很多对话去掉 就100%不会跳框 如果不去  100%会在某段(非固定)地方跳框……
作者: fux2    时间: 2014-5-24 18:13
你有sprite没有释放,导致了内存泄露。
win7下就会出现这个问题,建议你在场景切换的时候清除所有sprite。
猜测可以在默认脚本Main部分的$scene.main后面加上如下代码
  1.     ObjectSpace.each_object do |obj|
  2.       if obj.is_a?(Sprite) && obj.disposed? == false
  3.         obj.dispose
  4.       end
  5.     end
复制代码
也许可以解决问题,未测试,你可以试一下

好吧,如果你是游戏中跳框,可能是对话框产生了一些sprite没刷新又不释放?
作者: 天使喝可乐    时间: 2014-5-24 19:52
fux2 发表于 2014-5-24 18:13
你有sprite没有释放,导致了内存泄露。
win7下就会出现这个问题,建议你在场景切换的时候清除所有sprite。
...

试了一下 还是跳框= =
小黄鸡快帮我看看YUKI的问题{:2_270:}
作者: 怪蜀黍    时间: 2014-5-24 19:54
吾新建VA默认工程只要在特定电脑上运行就会出现这个框
作者: Password    时间: 2014-5-24 22:58
表示VX也有时会这样,大约的确是和sprite释放有关
后来改掉一段脚本就好了
作者: Mic_洛洛    时间: 2014-5-24 23:33
原来这毛病不止是VA有,是RM的通病~
= =||知道这点后,心里突然平衡了耶~!
作者: Sion    时间: 2014-5-24 23:46
本帖最后由 Sion 于 2014-5-24 23:51 编辑

事实上 Sprite 等等 RGSS 内建类是自带析构函数的,GC 可以回收。
不过在游戏实际运行中,GC 在处理 Sprite 等类型的时候游戏就有几率崩溃,这应该是 RGSS 的BUG。
所以官方要求 Sprite、Bitmap、Window 在使用完毕后都必须手动释放!
如果你使用了哪位粗心大意的脚本师的脚本,可就倒霉咯。

解决方案:找到未被正确释放的上述3种数据类型,手动添加释放代码。
作者: IamI    时间: 2014-5-25 00:10
Sion 发表于 2014-5-24 23:46
事实上 Sprite 等等 RGSS 内建类是自带析构函数的,GC 可以回收。
不过在游戏实际运行中,GC 在处理 Sprite ...

Plane 被你吃了么
作者: 天使喝可乐    时间: 2014-5-25 00:22
本帖最后由 天使喝可乐 于 2014-5-25 00:23 编辑
Sion 发表于 2014-5-24 23:46
事实上 Sprite 等等 RGSS 内建类是自带析构函数的,GC 可以回收。
不过在游戏实际运行中,GC 在处理 Sprite ...


游戏里 只要删掉大段对话 就绝对不会跳框  所以跳框的原因是这些对话吗= =  这个要如何释放
作者: yagami    时间: 2014-5-25 00:41
我擦 你居然还活着
作者: 后知后觉    时间: 2014-5-25 13:36
fux2 发表于 2014-5-24 18:13
你有sprite没有释放,导致了内存泄露。
win7下就会出现这个问题,建议你在场景切换的时候清除所有sprite。
...

我最近做的一个VA系统
进入游戏后从第2次战斗开始有几率出现
在战斗开始的过度结束后 WinXP 内存报错 Win7 停止运行.
也可能和 sprite 有关吗?
查了半天发现是 战斗开始时候执行的 Graphics.transition 引发的错误
是在执行这个函数快要结束时候引发的
作者: fux2    时间: 2014-5-25 14:30
后知后觉 发表于 2014-5-25 13:36
我最近做的一个VA系统
进入游戏后从第2次战斗开始有几率出现
在战斗开始的过度结束后 WinXP 内存报错 Win ...

Graphics.transition之前的sprite遗留到此之后就会出现这个问题。
作者: 后知后觉    时间: 2014-5-25 14:45
fux2 发表于 2014-5-25 14:30
Graphics.transition之前的sprite遗留到此之后就会出现这个问题。

这样的啊.谢谢了
以前都没遇到过.
这次做的系统结构不大好.进入战斗后一些数据会指向另外的东西
大概就是这个过程出了问题.导致 sprite 没有释放 =w=
作者: taroxd    时间: 2014-5-25 15:44
随便发个链接
http://tkool.jp/support/faq/general/dep.html
作者: fish198607    时间: 2014-7-11 12:06
我是运行RMVA的程序就直接跳停止工作,求破
作者: 楼主是我的女仆    时间: 2014-7-12 01:24
rm能完全兼容的就是winxp吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1