| david_ng223 发表于 2014-2-7 22:01 ![]() 啊啊啊啊啊, ,為什麼只是1個icon和7只英文字都要這麼多步驟的..........
 表示用了下面的代碼仍 ...
我觉得,这东西没必要刷新(因为不会变)
 干脆就在initialize画完就好了
 
 另外我觉得你还需要更好的理解Ruby。这里写方法并不是要模仿其他类的方法,而是要真正自己写。
 
 
 class Window_Pokedex < Window_Base  include Dream::Pokedex  #--------------------------------------------------------------------------  # ● 初始化  #--------------------------------------------------------------------------  def initialize(x, y, width, height)  # 这是在新建窗口的时候要做的事情    super   # 用相同的参数调用父类方法    draw_pokedex_icon   # 新建窗口的时候就画上图标    draw_pokedex_text   # 新建窗口的时候就画上文字  end  #--------------------------------------------------------------------------  # ● 繪制图鉴圖標  #     enabled : 有效的標志。false 的時候使用半透明效果繪制  #--------------------------------------------------------------------------  def draw_pokedex_icon    draw_icon(POKEDEX_ICON, 0, 0, enabled)  end    #--------------------------------------------------------------------------  # ● 绘制图鉴名称  #--------------------------------------------------------------------------  def draw_pokedex_text    draw_text(0, 0, 136, 52, POKEDEX_VOCAB)  endend
class Window_Pokedex < Window_Base 
  include Dream::Pokedex 
  #-------------------------------------------------------------------------- 
  # ● 初始化 
  #-------------------------------------------------------------------------- 
  def initialize(x, y, width, height)  # 这是在新建窗口的时候要做的事情 
    super   # 用相同的参数调用父类方法 
    draw_pokedex_icon   # 新建窗口的时候就画上图标 
    draw_pokedex_text   # 新建窗口的时候就画上文字 
  end 
  #-------------------------------------------------------------------------- 
  # ● 繪制图鉴圖標 
  #     enabled : 有效的標志。false 的時候使用半透明效果繪制 
  #-------------------------------------------------------------------------- 
  def draw_pokedex_icon 
    draw_icon(POKEDEX_ICON, 0, 0, enabled) 
  end   
  #-------------------------------------------------------------------------- 
  # ● 绘制图鉴名称 
  #-------------------------------------------------------------------------- 
  def draw_pokedex_text 
    draw_text(0, 0, 136, 52, POKEDEX_VOCAB) 
  end 
end 
 如果内容需要变化的话,就要调用refresh方法重绘内容(refresh只是一个名字,没有实际意义,但一般都用这方法。另外update这个名字是有实际意义的)
 举个栗子
 
 class Window_Something  def refresh  # 刷新    contents.clear    draw_contents  # 这个按照自己的写  end   def update # 这个方法在场景里会自动每帧调用一次    super    refresh if need_refresh?  # need_refresh 是个需要自己写的条件  endend
class Window_Something 
  def refresh  # 刷新 
    contents.clear 
    draw_contents  # 这个按照自己的写 
  end 
  
  def update # 这个方法在场景里会自动每帧调用一次 
    super 
    refresh if need_refresh?  # need_refresh 是个需要自己写的条件 
  end 
end 
 或者
 
 class Window_Something  def refresh  # 刷新    contents.clear    draw_contents  # 这个按照自己的写  end   def change_contents    something is changed    refresh  endend
class Window_Something 
  def refresh  # 刷新 
    contents.clear 
    draw_contents  # 这个按照自己的写 
  end 
  
  def change_contents 
    something is changed 
    refresh 
  end 
end 
 |