Project1

标题: [脚本]关于窗口的参数传递问题 [打印本页]

作者: 690051933    时间: 2016-2-28 00:41
标题: [脚本]关于窗口的参数传递问题
本帖最后由 690051933 于 2016-2-28 00:42 编辑

本人刚接触RM…一来就遇到一个问题..
标题可能描述的不准确,请看下面对我遇到的问题的详细描述。。

我想要制作解谜类的RPG,所以不需要技能、队伍等菜单,只用物品菜单,研究半天终于搞掉了…
但是还有一个问题,在ESC菜单中打开”物品“选项
我想要的效果是,在左边菜单里点击”物品”后直接在物品栏中选择物品了,
可实际上还是相当于有一个选择的过程,必须要再按下空格以选择下一级的"物品"选项卡(尽管"武器""护甲"等选项卡已经被我删除了)

琢磨半天,然后我找到了这段脚本
Scene_menu中:
  1. def create_command_window
  2.     @command_window = Window_MenuCommand.new
  3.     @command_window.set_handler(:item,      method(:command_item))
  4.     @command_window.set_handler(:save,      method(:command_save))
  5.     @command_window.set_handler(:game_end,  method(:command_game_end))
  6.     @command_window.set_handler(:cancel,    method(:return_scene))
  7. end
复制代码
这个是创建ESC菜单的代码,然后根据command_item(装备菜单命令)到
Scene_menu中:
  1. def command_item
  2.     SceneManager.call(Scene_Item)
  3. end
复制代码
然后
Scene_Item中:
  1. def start
  2.     super
  3.     create_help_window #介绍窗口
  4.     create_category_window #分类窗口
  5.     create_item_window #物品栏窗口
  6. end
复制代码
我想直接注释掉 分类窗口 就行了,可是发现注释掉并把一些错误排除后,物品栏中的物品居然看不见了!
我用事件触发来测试了一下,发现物品的确存在,可是没有显示出来
然后我进一步发现
Scene_Item中的
def create_item_window中:
  1. @category_window.item_window = @item_window
复制代码
有这么一段,注释掉后会有同样效果
Scene_Item中的
def create_category_window中:
  1. @category_window.set_handler(:ok, method(:on_category_ok))
复制代码
这种样子的代码似乎有很多,好像是判断选择的是哪一个菜单的,但是我并没有看到有判断是选中了哪一个菜单…但是应该是传递了一个参数,由于我跳过 分类窗口,物品栏窗口没有得到参数就不能显示出物品。。。这些只是我的理解…刚接触这个的确不太清楚…
希望大神解决!万分感谢!
作者: 威风镰鼬    时间: 2016-2-28 10:34
系统默认的菜单打开物品栏是先生成Window_ItemCategory.new的
你可以把    Scene_Item 中把带有分类窗口的部分删掉,然后直接生成道具窗口。
但是这个时候会出错,因为没有分类的话他不知道要生成什么物品。
所以我就在生成道具窗口那里加上了这句:
@item_window.category=(:item)
然后不管是什么东西,都给他归类成普通物品就行了。
作者: 690051933    时间: 2016-2-28 11:20
威风镰鼬 发表于 2016-2-28 10:34
系统默认的菜单打开物品栏是先生成Window_ItemCategory.new的
你可以把    Scene_Item 中把带有分类窗口的 ...

是的...想要直接进物品栏....分类那一部分已经删掉了,以前可以选择"物品""武器""护甲"啥的现在只有"物品"了
跳过上面那个选择分类对话框的生成后,就发现它不知道该生成什么物品了...所以还以为是选择分类对话框给物品显示传递了一个参数,让它知道是显示"物品"还是"武器"等等..
非常感谢您的回答!@item_window.category=(:item)是放在create_item_window里面吗,可是为什么放进去会报错(之前的选择分类对话框也打开了的...)




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