Project1

标题: 自己写了个窗口脚本。。。出现释放问题求解。。。 [打印本页]

作者: lwdx0822    时间: 2010-10-19 18:51
标题: 自己写了个窗口脚本。。。出现释放问题求解。。。
本帖最后由 lwdx0822 于 2010-10-19 20:34 编辑

我学着默认脚本写了个显示另一种货币的小窗口。。。可是。。。
测试时释放出现了问题。。。求解啊~~~
脚本如下~

#==============================================================================
# ■ Window_Gold2
#------------------------------------------------------------------------------
#  显示货币2的窗口。
#==============================================================================

class Window_Gold2 < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #     x : 窗口的 X 坐标
  #     y : 窗口的 Y 坐标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(0, 305, 160, WLH + 32)
    refresh
  end  
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0, 0, 120, 32, "晶币:")
    self.contents.font.color = normal_color
    self.contents.draw_text(24, 0, 120, WLH, $game_variables[1])
  end
end

这个是 Window_Gold2
下面的是我修改Scene_Menu类里面的地方。。。

  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
    @gold_window = Window_Gold2.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
  end
  #--------------------------------------------------------------------------
  # ● 结束处理
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @gold_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @gold_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end

分别添加了22行下面
@gold_window = Window_Gold2.new(0, 360)

33行下面的
@gold_window.dispose

44行下面的
@gold_window.update
可是测试时却说Window_Base类里面的
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    self.contents.dispose
    super
  end
这段出现了问题。。。
求解啊。。。
谢谢紫大大的热心帮助!!!感谢大大~~~
认可您的答案。。。
作者: 八云紫    时间: 2010-10-19 18:53
@gold_window = Window_Gold.new(0, 360)
@gold_window = Window_Gold2.new(0, 360)

没看出啥问题么? 变量名是不能一致的。这样后者会覆盖前者。然后释放的时候就会出现问题~~
作者: lwdx0822    时间: 2010-10-19 19:48
回复 铃仙·优昙华院·因幡 的帖子


    变量名。。。那里。。。我是脚本初学者啊。。。
有点小白。。。请紫大大指点。。。
作者: 八云紫    时间: 2010-10-19 19:56
回复 lwdx0822 的帖子

这个说的不是很清楚, 看例子就知道了。

  1. a = 1
  2. p a
  3. a = "ABC"
  4. p a
  5. b = 1
  6. p b
复制代码

作者: lwdx0822    时间: 2010-10-19 20:16
回复 铃仙·优昙华院·因幡 的帖子

那这个问题出现在我的脚本的什么地方啊?。。。请大大指出。。。
    那个  还有怎么解决撒。。。
作者: lwdx0822    时间: 2010-10-19 20:17
回复 铃仙·优昙华院·因幡 的帖子


是这里么?
  1. @gold_window.dispose
  2. @gold_window.dispose
复制代码
跟这里么?
  1. @gold_window.update
  2. @gold_window.update
复制代码
那怎么解决啊。。。
作者: 八云紫    时间: 2010-10-19 20:19
   @gold_window = Window_Gold.new(0, 360)
    @gold_window = Window_Gold2.new(0, 360)

知道 类名 需要区分开来,为什么没去区分变量名呢?

   @gold_window = Window_Gold.new(0, 360)
    @gold2_window = Window_Gold2.new(0, 360)
作者: lwdx0822    时间: 2010-10-19 20:33
回复 铃仙·优昙华院·因幡 的帖子

哈哈~~~谢谢大大啊~~~
一开始写的时候我也想到这里了。。。
可是 我却写错成。。。
  1. @gold2_window = Window_Gold.new(0, 360)

复制代码
  1. @gold2_window = Window_Gold.new(0, 360)
复制代码





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