回复 zxc3824 的帖子 Window_Command 原脚本:
|
本帖最后由 狸猫阿白 于 2010-11-13 17:29 编辑 @commands 是记录命令窗口各选项名称的变量,并不是让它 = 6 就有6个选项了的。 可以F11打开脚本编辑器,全局搜索“Window_Command.new”,看看程序是如何调用“Window_Command”的。 比如在游戏中按ESC调出菜单,运行的是Scene_Menu,它是这样调用 Window_Command 的: 看 Scene_Menu 的第26行“@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])”。(前面的20~25行分别定义了S1~S6的内容) 然后看Window_Command 的 def initialize(width, commands),说明要调用Window_Command 需要2个参数,上面的注释写了:“ # width : 窗口的宽; # commands : 命令字符串序列”。这两个参数决定所调用 Window_Command 窗口的宽度和选项数量及内容。 对应一下,160就是宽度,而[s1, s2, s3, s4, s5, s6]就是命令字符串序列,这个数组里面有6个字符串,因此有6个选项。 Window_Command 的第17行“@commands = commands”,就是让变量@commands 的值等于[s1, s2, s3, s4, s5, s6]。 而你的脚本把它改成 “@commands = 6”,则@commands 记录的就不是字符串而是常数,第40行self.contents.draw_text(rect, @commands[index])的蓝色部分自然出错。 ========================补充======================= 在脚本编辑器里全局搜索“Window_Command.new”,发现有3处地方调用了这一窗口,直接修改 Window_Command的话,会导致其它调用 Window_Command 的地方也变成一行6列,因此要在 Window_Command 的 部分进行条件分歧:
|
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-15 16:55
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.