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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2017-7-25 00:10:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv2.观梦者

梦石
0
星屑
900
在线时间
75 小时
注册时间
2017-7-10
帖子
27
2
发表于 2017-7-25 00:56:28 | 只看该作者
WIN7特有的故障,原因有很多,dll加载错误,软件不兼容,文件不在等内部消息都会引发,检查下是不是脚本兼容问题。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23984
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

3
发表于 2017-7-25 13:08:19 | 只看该作者
多半是dll的问题,可以试试在兼容模式下运行?我之前自己写了个dll,然后在win10下崩溃退出,用兼容模式反而可以运行= =

点评

问题是没有附加的DLL啊  发表于 2017-7-25 14:19
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41081
在线时间
7566 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

4
发表于 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
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

5
 楼主| 发表于 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的都报错了。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41081
在线时间
7566 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

6
发表于 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
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 19:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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