Project1

标题: 请教这个弹窗故障可能发生的原因 [打印本页]

作者: alianlord    时间: 2022-4-26 20:00
标题: 请教这个弹窗故障可能发生的原因
本帖最后由 alianlord 于 2022-4-26 20:01 编辑

请教这个弹窗故障可能发生的原因。空位图建立不了,怎么可能呢?

2022-04-26_195649.png (2.6 KB, 下载次数: 27)

2022-04-26_195649.png

2022-04-26_200051.png (2.56 KB, 下载次数: 28)

2022-04-26_200051.png

作者: KB.Driver    时间: 2022-4-26 21:00
把100行对应的方法改成这个然后看下输出、截图?
这段代码可以计算到100行这段出错为止总共运行了多少次生成新位图的方法。

def self.empty_bitmap
  @n=(@n||0)+1
  Bitmap.new(32, 32)
rescue
  msgbox @n
  raise
end
作者: alianlord    时间: 2022-4-26 21:50
KB.Driver 发表于 2022-4-26 21:00
把100行对应的方法改成这个然后看下输出、截图?
这段代码可以计算到100行这段出错为止总共运行了多少次生 ...

马上试验
作者: alianlord    时间: 2022-4-26 22:05
KB.Driver 发表于 2022-4-26 21:00
把100行对应的方法改成这个然后看下输出、截图?
这段代码可以计算到100行这段出错为止总共运行了多少次生 ...

试验结果如下。

2022-04-26_220054.png (4.31 KB, 下载次数: 26)

2022-04-26_220054.png

2022-04-26_220305.png (5.16 KB, 下载次数: 23)

2022-04-26_220305.png

作者: KB.Driver    时间: 2022-4-26 22:23
alianlord 发表于 2022-4-26 22:05
试验结果如下。

那看来这个错误捕获不到,要开控制台才行。



控制台在这里开,然后从工程里测试游戏。
测试之前把刚才的地方复原一下,找个空白位置粘贴这个脚本

总的来说,大的位图用的太多是会这样的。
测试事件:


炸了:

作者: alianlord    时间: 2022-4-26 23:00
KB.Driver 发表于 2022-4-26 22:23
那看来这个错误捕获不到,要开控制台才行。

非常有帮助,谢谢。
作者: KB.Driver    时间: 2022-4-26 23:59
alianlord 发表于 2022-4-26 23:00
非常有帮助,谢谢。

不好意思,最重要的脚本我忘记贴了。

class Bitmap
  
  @@count = 0
  
  alias initialize_no_count initialize
  def initialize(*a)
    @@count += 1
    puts "位图数量:#{@@count}"
    initialize_no_count(*a)
  end
  
  alias dispose_no_count dispose
  def dispose
    @@count -= 1
    puts "位图数量:#{@@count}"
    dispose_no_count
  end
  
end
作者: alianlord    时间: 2022-4-27 08:31
KB.Driver 发表于 2022-4-26 23:59
不好意思,最重要的脚本我忘记贴了。

class Bitmap

就如所言,我的工程问题就是使用了动画脚本,累积到了一定数目,就无法生成新的空位图而弹窗了。

就没办法解决空位图过多的现像吗?

谢谢
作者: KB.Driver    时间: 2022-4-27 21:38
alianlord 发表于 2022-4-27 08:31
就如所言,我的工程问题就是使用了动画脚本,累积到了一定数目,就无法生成新的空位图而弹窗了。

就没办 ...

要看看动画脚本的写法了。
可能是有意或无意没有释放位图。
有意不释放是为了保证画面流畅,但是数量多了就会炸。
无意的那就单纯是脚本作者没写释放,可能是能力不足也可能是忘记了之类。




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