Project1
标题: 怎么创建一个图册窗口 [打印本页]
作者: 特雷西炒蛋 时间: 2017-3-13 15:34
标题: 怎么创建一个图册窗口
如何在开始游戏的界面里创建一个画册窗口
作者: QQ蚊子湯 时间: 2017-3-13 19:13
本帖最后由 QQ蚊子湯 于 2017-3-13 19:16 编辑
要在標題畫面增加功能的意思嗎!
首先來看看 Window_TitleCommand 這個窗口類吧
緊接著看一下製作窗口指令的方法
make_command_list 這個方法是本類的父類Window_Command中被初始化的
窗口指令在這裡被添加
def make_command_list
add_command(Vocab::new_game, :new_game)
add_command(Vocab::continue, :continue, continue_enabled)
add_command("畫冊", :abcde)
add_command(Vocab::shutdown, :shutdown)
end
def make_command_list
add_command(Vocab::new_game, :new_game)
add_command(Vocab::continue, :continue, continue_enabled)
add_command("畫冊", :abcde)
add_command(Vocab::shutdown, :shutdown)
end
add_command方法也是來自父類Window_Command的方法
看一下定義吧
def add_command(name, symbol, enabled = true, ext = nil)
@list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext})
end
def add_command(name, symbol, enabled = true, ext = nil)
@list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext})
end
這些參數代表的意義:
name : 指令名稱
symbol : 對應的符號
enabled : 有效狀態的標志
ext : 任意的延伸資料
其中enabled和ext 參數因為設置了默認值所以可以省略
機智的人應該已經能看出如何依樣畫葫蘆添加了
接下來看一下Scene_Title場景的類吧
默認窗口的類基本上都只有看的功能,所以要能夠運行剛才添加的指令必須要在繪製本窗口的場景中定義
來看看繪製窗口的方法吧
def create_command_window
@command_window = Window_TitleCommand.new
@command_window.set_handler(:new_game, method(:command_new_game))
@command_window.set_handler(:continue, method(:command_continue))
@command_window.set_handler(:shutdown, method(:command_shutdown))
@command_window.set_handler(:abcde, method(:command_abcde))
end
def create_command_window
@command_window = Window_TitleCommand.new
@command_window.set_handler(:new_game, method(:command_new_game))
@command_window.set_handler(:continue, method(:command_continue))
@command_window.set_handler(:shutdown, method(:command_shutdown))
@command_window.set_handler(:abcde, method(:command_abcde))
end
剛才的Window_TitleCommand窗口就是因應這條指令而生,並且讓他成為一個叫做@command_window的實體
@command_window = Window_TitleCommand.new
@command_window = Window_TitleCommand.new
我們可以直接對實體@command_window進行操作,並使用自身的方法
例如set_handler方法他是來自父類的父類Window_Selectable的方法
def set_handler(symbol, method)
@handler[symbol] = method
end
def set_handler(symbol, method)
@handler[symbol] = method
end
我們利用這個方法使剛才的傳入symbol參數能夠執行動作並且執行method參數的方法
最後我們只要定義一個新的方法來執行這個操作就可以了
例如我在此處定義了command_abcde方法
並由此指令傳遞
@command_window.set_handler(:abcde, method(:command_abcde))
@command_window.set_handler(:abcde, method(:command_abcde))
裡面執行 p 123
當你完成你的畫冊窗口或場景時可以用這個方法來執行他
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |