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中被初始化的
窗口指令在這裡被添加

RUBY 代码复制
  1. def make_command_list
  2.     add_command(Vocab::new_game, :new_game)
  3.     add_command(Vocab::continue, :continue, continue_enabled)
  4.     add_command("畫冊", :abcde)
  5.     add_command(Vocab::shutdown, :shutdown)
  6.   end


add_command方法也是來自父類Window_Command的方法
看一下定義吧

RUBY 代码复制
  1. def add_command(name, symbol, enabled = true, ext = nil)
  2.     @list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext})
  3.   end

這些參數代表的意義:
name    : 指令名稱
symbol  : 對應的符號
enabled : 有效狀態的標志
ext     : 任意的延伸資料

其中enabled和ext 參數因為設置了默認值所以可以省略
機智的人應該已經能看出如何依樣畫葫蘆添加了

接下來看一下Scene_Title場景的類吧

默認窗口的類基本上都只有看的功能,所以要能夠運行剛才添加的指令必須要在繪製本窗口的場景中定義
來看看繪製窗口的方法吧
RUBY 代码复制
  1. def create_command_window
  2.     @command_window = Window_TitleCommand.new
  3.     @command_window.set_handler(:new_game, method(:command_new_game))
  4.     @command_window.set_handler(:continue, method(:command_continue))
  5.     @command_window.set_handler(:shutdown, method(:command_shutdown))
  6.     @command_window.set_handler(:abcde, method(:command_abcde))
  7.   end

剛才的Window_TitleCommand窗口就是因應這條指令而生,並且讓他成為一個叫做@command_window的實體
RUBY 代码复制
  1. @command_window = Window_TitleCommand.new

我們可以直接對實體@command_window進行操作,並使用自身的方法
例如set_handler方法他是來自父類的父類Window_Selectable的方法
RUBY 代码复制
  1. def set_handler(symbol, method)
  2.     @handler[symbol] = method
  3.   end


我們利用這個方法使剛才的傳入symbol參數能夠執行動作並且執行method參數的方法


最後我們只要定義一個新的方法來執行這個操作就可以了
例如我在此處定義了command_abcde方法
並由此指令傳遞
RUBY 代码复制
  1. @command_window.set_handler(:abcde, method(:command_abcde))

裡面執行 p 123
當你完成你的畫冊窗口或場景時可以用這個方法來執行他





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1