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) end end
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 是个需要自己写的条件 end end
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 end end
class Window_Something
def refresh # 刷新
contents.clear
draw_contents # 这个按照自己的写
end
def change_contents
something is changed
refresh
end
end
|