Project1

标题: disposed window的问题!!! [打印本页]

作者: Phny    时间: 2020-1-25 10:36
标题: disposed window的问题!!!
小弟最近使用了Ultra大神的多重状态交替显示脚本,想在战斗中自己做一个窗口专门显示状态图标
但是做好了之后却显示这个错误。。。。请各位高手不吝赐教!!!
RUBY 代码复制
  1. def initialize
  2.     super(x, 390, width, 90)
  3.     self.windowskin = nil
  4.     self.x = x
  5.     x = (640 - $game_party.actors.size * 150) / 2
  6.     self.width = width
  7.     width = $game_party.actors.size * 150
  8.     self.contents = Bitmap.new(width - 32, height - 32)
  9.     self.z = 100
  10.   end
  11.  
  12.   def dispose
  13.     for i in 0...$game_party.actors.size
  14.       @st[i].dispose
  15.     end
  16.     super
  17.   end
  18.  
  19.   def update
  20.     for i in 0...$game_party.actors.size
  21.       @st[i].update
  22.     end
  23.     super
  24.   end
  25.  
  26.   def refresh
  27.     self.contents.clear
  28.     @st = []
  29.     for i in 0...$game_party.actors.size
  30.       actor = $game_party.actors[i]
  31.       icon_x = (800 - $game_party.actors.size * 150) / 2 + i * 150
  32.       @st[i] = States_Pic.new(actor.states,icon_x+25,y+115,40)
  33.     end
  34.   end
  35.  
  36. end

QQ截图20200125103057.png (5.29 KB, 下载次数: 13)

QQ截图20200125103057.png

作者: srwjrevenger    时间: 2020-1-25 14:07
试试把第4行和第5行互换,6和7也要这样哦
作者: Phny    时间: 2020-1-25 20:16
srwjrevenger 发表于 2020-1-25 14:07
试试把第4行和第5行互换,6和7也要这样哦

换了不过没有用。。。。。看样子不是这个的问题。。。。
作者: fux2    时间: 2020-1-26 10:14
在父类的初始化中就dispose了,从楼主贴出来的代码里看不出具体情况
作者: Phny    时间: 2020-1-26 21:14
本帖最后由 Phny 于 2020-1-26 21:20 编辑
fux2 发表于 2020-1-26 10:14
在父类的初始化中就dispose了,从楼主贴出来的代码里看不出具体情况


看了Window_Base

  1. def initialize(x, y, width, height)
  2.     super()
  3.     @windowskin_name = $game_system.windowskin_name
  4.     self.windowskin = RPG::Cache.windowskin(@windowskin_name)
  5.     self.x = x
  6.     self.y = y
  7.     self.width = width
  8.     self.height = height
  9.     self.z = 100
  10.   end
复制代码


还有dispose里面
  1. def dispose
  2.     # 如果窗口的内容已经被设置就被释放
  3.     if self.contents != nil
  4.       self.contents.dispose
  5.     end
  6.     super
  7.   end
复制代码

本来觉得是窗口一开始没有设置内容导致的,但是仔细一想这个dispose是窗口内容不为nil的时候才释放。。。。
然后这个错误信息又是指在我做的那个窗口的initialize。。。想不明白
作者: Phny    时间: 2020-1-26 22:00
fux2 发表于 2020-1-26 10:14
在父类的初始化中就dispose了,从楼主贴出来的代码里看不出具体情况

补充一下,其实小弟想做这个功能本意是发现battlestatus里面状态图标的循环播放会受到攻击动画的影响。。。。队员打过去或者是对面打过来都会从第一个状态图标重新开始播放,所以想试试独立做一个窗口出来会不会解决这个问题。。。。。。而且还打算配合敌方血条插件可以让对面头顶也显示这样的状态图标循环。。。。结果我太菜了什么也做不出来




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