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

Project1

 找回密码
 注册会员
搜索

RGSS PLAY已经停止工作,能看出是什么问题吗

查看数: 1916 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-7-25 00:10

正文摘要:

突然就弹出来,没有什么预警

回复

fux2 发表于 2017-7-26 11:41:25
yang1zhi 发表于 2017-7-26 09:18
使用了你这个脚本后。脚本内这些=NIL的都报错了。

不懂手动GC,=nil是完全没有必要的
用了我这段代码sprite就会全部被释放,你这里还调用一次dispose不是重复了吗
要么删除原有的dispose,要么都加上disposed?的判断(最好还是检查哪里的sprite没释放

点评

一些现成脚本在dispose后都还会加个=NIL。看起来好像是用来判断是不是NIL。因为没有建立以前是NIL,释放后不是NIL  发表于 2017-7-26 13:55
yang1zhi 发表于 2017-7-26 09:18:43
fux2 发表于 2017-7-25 15:16
目前为止RM在无外部dll以及内存修改(包括黑科技脚本)的情况下会发生内存访问异常的只有sprite泄漏。
你的 ...
  1. @text.bitmap.dispose
  2.        @text.bitmap = nil
  3.        @text.dispose
  4.        @text = nil   
复制代码

使用了你这个脚本后。脚本内这些=NIL的都报错了。
fux2 发表于 2017-7-25 15:16:55
目前为止RM在无外部dll以及内存修改(包括黑科技脚本)的情况下会发生内存访问异常的只有sprite泄漏。
你的上一个场景,应该是地图场景把,新建了某个sprite然后经过Graphics.transition后没有释放,在win7以上的系统就会爆炸。
可以找你的程序员帮你检查,我这里有一段简易的排除方法,放在场景切换的时候就可以避免这个bug产生,但并不适用所有情况,还是让程序员仔细判断一下把。
  1. ObjectSpace.each_object do |obj|
  2.    if obj.is_a?(Sprite) && obj.disposed? == false
  3.       obj.dispose
  4.    end
  5. end
复制代码

点评

谢谢  发表于 2017-7-26 09:14
我是说切换场景时产生的泄漏,内存泄漏后根据环境不同在不同的时机产生内存访问异常。可以搜索一下内存泄漏查看详细定义。  发表于 2017-7-25 22:16
不是在场景切换时,是自己一个阵亡后,换另一个打了几下,出错了。这个出错很少见,这几天都在测试,只见过这一次。  发表于 2017-7-25 16:51
guoxiaomi 发表于 2017-7-25 13:08:19
多半是dll的问题,可以试试在兼容模式下运行?我之前自己写了个dll,然后在win10下崩溃退出,用兼容模式反而可以运行= =

点评

问题是没有附加的DLL啊  发表于 2017-7-25 14:19
antilmid 发表于 2017-7-25 00:56:28
WIN7特有的故障,原因有很多,dll加载错误,软件不兼容,文件不在等内部消息都会引发,检查下是不是脚本兼容问题。
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-21 20:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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