| david_ng223 发表于 2014-2-7 08:35 ![]() 那么即是說:
 @category_window的下级窗口會显示指定类别的物品,
 而這個會显示指定类别物品的窗口就是@lis ...
 是的 我再举个例子
 
 比如我们要实现一个场景Scene_Review  这个场景目的是显示已经经历过的情节
 
 那么场景的左边是一个窗口 用来选择事件(比如【哈斯顿战役】)  右边是另一个窗口 显示详细的描述(XX年XX月XX日  哈斯顿城…………)
 假设左边的窗口有这样的部分定义
 class Widow_ReviewList < Window_Base  def info_window=(iw)     @info_window = iw  end   def update     # update self     update_info if @info_window  end   def update_info    @info_window.set_text(INFORMATION[@index])  endend
class Widow_ReviewList < Window_Base 
  def info_window=(iw) 
     @info_window = iw 
  end 
  
  def update 
     # update self 
     update_info if @info_window 
  end 
  
  def update_info 
    @info_window.set_text(INFORMATION[@index]) 
  end 
end 
右边的窗口有这样的定义
 class Window_ReviewDetail < Window_Base  def set_text(text)     contents.clear     draw_text_ex(0,0,100,100,text)  endend
class Window_ReviewDetail < Window_Base 
  def set_text(text) 
     contents.clear 
     draw_text_ex(0,0,100,100,text) 
  end 
end 
很显然   左边的List需要一个下属机构    List会把详细内容告诉下属机构   下属机构负责描绘出来    其中INFORMATION是一个数组   INFORMATION[@index]获取指定序号的事件的详细信息*
 
 那么 我们可以在场景中这样
 
 class Scene_Review < Scene_Base  def start    super    create_detail_window    create_list_window  end   def create_detail_window    @detail_window = Window_ReviewDetail.new    # do something or not  end   def create_list_window      @list_window = Window_ReviewList.new      @list_window.info_window = @detail_window      # do sth. or not  endend
class Scene_Review < Scene_Base 
  def start 
    super 
    create_detail_window 
    create_list_window 
  end 
  
  def create_detail_window 
    @detail_window = Window_ReviewDetail.new 
    # do something or not 
  end 
  
  def create_list_window 
      @list_window = Window_ReviewList.new 
      @list_window.info_window = @detail_window 
      # do sth. or not 
  end 
end 
 
 * 获取指定序号的详细信息并不安全  因为随着游戏进程  各种事件的序号会改变  但这里只是举个例子
 |