| 
本帖最后由 喵呜喵5 于 2014-3-4 17:43 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 写了一段脚本,定义了一个修改实例变量的类方法,但是实际测试的时候发现这个类方法并不会改变实例的运行,求解
 
 
 #--------------------------------------------------------------------------# ● 设置窗口#--------------------------------------------------------------------------class New_Window < Window_Base  #--------------------------------------------------------------------------  # ● 开始处理,设置实例变量@flags、@num  #--------------------------------------------------------------------------  def initialize    super(0, 0, Graphics.width, Graphics.height)    @flags = true    @num = 0  end  #--------------------------------------------------------------------------  # ● 更新,如果@flags打开的时候在控制台输出@num  #--------------------------------------------------------------------------  def update    super        if @flags            p @num      @num += 1    end      end  #--------------------------------------------------------------------------  # ● 类方法 New_Window.change ,@flags变成相反的值  #--------------------------------------------------------------------------  def self.change    @flags = !@flags    p @flags  end  end#--------------------------------------------------------------------------# ● 载入地图#--------------------------------------------------------------------------class Scene_Map  alias new_create_all_windows create_all_windows  def create_all_windows    new_create_all_windows    @new_window =  New_Window.new  endend
#-------------------------------------------------------------------------- 
# ● 设置窗口 
#-------------------------------------------------------------------------- 
class New_Window < Window_Base 
  #-------------------------------------------------------------------------- 
  # ● 开始处理,设置实例变量@flags、@num 
  #-------------------------------------------------------------------------- 
  def initialize 
    super(0, 0, Graphics.width, Graphics.height) 
    @flags = true 
    @num = 0 
  end 
  #-------------------------------------------------------------------------- 
  # ● 更新,如果@flags打开的时候在控制台输出@num 
  #-------------------------------------------------------------------------- 
  def update 
    super     
    if @flags       
      p @num 
      @num += 1 
    end     
  end 
  #-------------------------------------------------------------------------- 
  # ● 类方法 New_Window.change ,@flags变成相反的值 
  #-------------------------------------------------------------------------- 
  def self.change 
    @flags = !@flags 
    p @flags 
  end   
end 
#-------------------------------------------------------------------------- 
# ● 载入地图 
#-------------------------------------------------------------------------- 
class Scene_Map 
  alias new_create_all_windows create_all_windows 
  def create_all_windows 
    new_create_all_windows 
    @new_window =  New_Window.new 
  end 
end 
 |