Project1

标题: 程序崩溃有可能是因为什么? [打印本页]

作者: limaolinghu    时间: 2012-7-18 16:42
标题: 程序崩溃有可能是因为什么?
我改了很多脚本,图片,逻辑,战斗,很多都改了
我发现现在有时候战斗结束后,再进入战斗时,程序会崩溃,就是弹出一个windows debug的对话框。不是普通的脚本错误。
不知道有没有人知道这个可能是由于什么造成的?图片没有释放?内存问题?还是啥?dsu_plus_rewardpost_czw
作者: limaolinghu    时间: 2012-7-18 16:47
另外,不是每次都发生,有时候一场战斗结束就死,有时候是2场。。。。
作者: 怪蜀黍    时间: 2012-7-18 21:16
出现类似错误,一般是viewport.dispose或者parallax.dispose导致的。我做的游戏出现这样的提示错误就是这些dispose导致的。
作者: limaolinghu    时间: 2012-7-18 22:23
protosssonny 发表于 2012-7-18 21:16
出现类似错误,一般是viewport.dispose或者parallax.dispose导致的。我做的游戏出现这样的提示错误就是这些 ...

我也怀疑是资源释放的问题,但一般你是怎么查出哪里有问题的?
或者一般是怎么改好的?
作者: 怪蜀黍    时间: 2012-7-18 23:04
limaolinghu 发表于 2012-7-18 22:23
我也怀疑是资源释放的问题,但一般你是怎么查出哪里有问题的?
或者一般是怎么改好的? ...

我的办法老土了,把怀疑的脚本放到main之后,然后一个一个放回来并测试,直到错误出现,筛选工作恐怕会持续几个钟头,找到错误的脚本后,再把可能错误的行注释掉,再一个一个祛除注释并测试,最终找到错误行并解决。主要是这类错误是不会有提示是哪行出错的,所以相当麻烦。
作者: limaolinghu    时间: 2012-7-19 07:42
protosssonny 发表于 2012-7-18 23:04
我的办法老土了,把怀疑的脚本放到main之后,然后一个一个放回来并测试,直到错误出现,筛选工作恐怕会持 ...

哦,谢谢。
如果是dispose的问题,一般是什么什么原因呢?
有bitmap没释放,或者有viewport没释放?还是其他什么原因呢?
作者: 怪蜀黍    时间: 2012-7-19 08:50
limaolinghu 发表于 2012-7-19 07:42
哦,谢谢。
如果是dispose的问题,一般是什么什么原因呢?
有bitmap没释放,或者有viewport没释放?还是 ...

不一定是没释放。比如说,脚本《壁タイル拡張》Ver.4.21 製作者:月紳士 的第1400多行有个:
  1.   #--------------------------------------------------------------------------
  2.   # ◎ ビューポートの解放
  3.   #--------------------------------------------------------------------------
  4.   alias tig_ew_dispose_viewports dispose_viewports
  5.   def dispose_viewports
  6.     tig_ew_dispose_viewports
  7.     @viewport4.dispose
  8.     #@viewport5.dispose if Expansion_Passable::BACK_SEEING #删除此行以消除游戏无故崩溃的BUG
  9.     @viewport6.dispose if @viewport6 != nil
  10.   end
复制代码
@viewport5.dispose if Expansion_Passable::BACK_SEEING必须注释掉才能消除趁许崩溃。这是我花了无数小时才找到的出错点。也就是说,释放了也会导致程序崩溃。我只能总结为“程序崩溃的原因可能为两点:一是该释放的没释放,二是不该释放的释放了”。
作者: limaolinghu    时间: 2012-7-19 09:59
protosssonny 发表于 2012-7-19 08:50
不一定是没释放。比如说,脚本《壁タイル拡張》Ver.4.21 製作者:月紳士 的第1400多行有个:@viewport5. ...

明白了,我再研究研究,谢谢




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