加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
教程给了一个实践作业,说制作剧情提示的画面,我按照上面的步骤给它做完了
脚本全文是这样:
#--- # ∩ 故事阶段提示 #--- #--- # ∩ 设定选项名称与故事内容 #--- module Gushi Mingcheng = "故事" BLDY = 1 #变量号数 GSNR = { 1 => "这是一个测试文本。", 2 => "这也是一个测试文本。" } end #--- # ∩ 在菜单中添加「故事」选项 #--- class Window_MenuCommand alias add_gushi_command add_original_commands def add_original_commands add_gushi_command add_command(Gushi::Mingcheng, :gushi) end end #--- # ∩ 添加「故事」选项所调用的端口 #--- class Scene_Menu alias create_command_gushi create_command_window def create_command_window create_command_gushi @command_window.set_handler(:gushi, method(:command_gushi)) end def command_gushi SceneManager.call(Scene_Gushi) end end #--- # ∩ 创建故事场景 #--- class Scene_Gushi < Scene_MenuBase def start super @gushi_window = Window_Gushi.new @gushi_window.set_handler(:cancel, method(:return_scene)) end end #--- # ∩ 绘制故事窗口 #--- class Window_Gushi < Window_Selectable def initialize super(0, 0, Graphics.width, Graphics.height) draw_text_ex(4, 0, Gushi::GSNR[$game_variables[Gushi::BLDY]]) activate end end
#---
# ∩ 故事阶段提示
#---
#---
# ∩ 设定选项名称与故事内容
#---
module Gushi
Mingcheng = "故事"
BLDY = 1 #变量号数
GSNR = {
1 => "这是一个测试文本。",
2 => "这也是一个测试文本。"
}
end
#---
# ∩ 在菜单中添加「故事」选项
#---
class Window_MenuCommand
alias add_gushi_command add_original_commands
def add_original_commands
add_gushi_command
add_command(Gushi::Mingcheng, :gushi)
end
end
#---
# ∩ 添加「故事」选项所调用的端口
#---
class Scene_Menu
alias create_command_gushi create_command_window
def create_command_window
create_command_gushi
@command_window.set_handler(:gushi, method(:command_gushi))
end
def command_gushi
SceneManager.call(Scene_Gushi)
end
end
#---
# ∩ 创建故事场景
#---
class Scene_Gushi < Scene_MenuBase
def start
super
@gushi_window = Window_Gushi.new
@gushi_window.set_handler(:cancel, method(:return_scene))
end
end
#---
# ∩ 绘制故事窗口
#---
class Window_Gushi < Window_Selectable
def initialize
super(0, 0, Graphics.width, Graphics.height)
draw_text_ex(4, 0, Gushi::GSNR[$game_variables[Gushi::BLDY]])
activate
end
end
我的问题是,这个窗口是怎么显示出来的,我没有看到显示窗口的语句
比如说Scene_Menu里,它的start中有
def start super create_command_window create_gold_window create_status_window end
def start
super
create_command_window
create_gold_window
create_status_window
end
这里的三个create什么什么的后面都被定义了。我的理解是,这三个函数直接被调动了,所以在Menu场景中显示了命令、金钱与状态三个窗口
可在我写的脚本中,Window_Gushi在描述窗口的属性并且让窗口成为有效状态,而Scene_Gushi就只是super了父类,然后把实例变量@gushi_window变成了Window_Gushi的一个实例,不是没有调动任何函数来显示窗口吗?
还有一个问题就是,我看默认的脚本当中,窗口的很多属性都是在Scene里定义的,比如Scene_Menu:
#-------------------------------------------------------------------------- # ● 生成物品窗口 #-------------------------------------------------------------------------- def create_item_window wy = @category_window.y + @category_window.height wh = Graphics.height - wy @item_window = Window_ItemList.new(0, wy, Graphics.width, wh) @item_window.viewport = @viewport @item_window.help_window = @help_window @item_window.set_handler(:ok, method(:on_item_ok)) @item_window.set_handler(:cancel, method(:on_item_cancel)) @category_window.item_window = @item_window end
#--------------------------------------------------------------------------
# ● 生成物品窗口
#--------------------------------------------------------------------------
def create_item_window
wy = @category_window.y + @category_window.height
wh = Graphics.height - wy
@item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.set_handler(:ok, method(:on_item_ok))
@item_window.set_handler(:cancel, method(:on_item_cancel))
@category_window.item_window = @item_window
end
为啥我的脚本就都是在window里定义的……
这些问题或许很笨吧,但我是真的晕了,好难啊
实际操作的时候,感觉教程里讲的东西少之又少,随便拿个脚本就通篇都是疑问……
对我来说,想要自己编写好用的脚本,至少也得一年以后吧 |