Project1
标题:
创建窗口的正确流程到底是怎样的
[打印本页]
作者:
acv255
时间:
2015-8-18 23:27
标题:
创建窗口的正确流程到底是怎样的
光看范例脚本的话觉得创建一个窗口真是太简单了:
新建一个Scene;
在Scene的start里加上create_xx_window;
定义create方法为生成一个Window_XX的实例;
新建Window_XX;
在refresh中加入显示的方法;
结束。
但是事实上每次都会出一大堆问题,都是到论坛上问到这里加一点那里加一点从没见过的东西最终才能正确运行。
比如 要做能跟Message同步出现消失的窗口,我一开始做出来要么就一直存在要么就一直找不到,搞了半天在
@taroxd
提醒下才发现控制Message窗口出现消失的根本就不是create而是隐藏在跟上下文似乎找不到关联的fiber方法里的$game_message.visible;
要做一个物品选择窗口,明明全是抄ShopBuy窗口,做出来就是一进入窗口就无法操作;这时候
@喵呜喵5
说要加个activate,结果就真的可以操作了。但是在范例脚本里activate似乎都是用在二级菜单中,为什么我写的脚本里就要在一级菜单里也加上才能正常运行?这之间到底存在什么区别?
好不容易把这些折腾得能用了,想给物品选择窗口加个帮助窗口,在scene里加了个create_help_window,一看scene和window两边的超类都自带了对help_window调用方法,然后参考一下其他范例脚本,也都是没对help的create和update等方法进行什么加工就直接拿来用了,那我也直接拿来用了——结果一进游戏又是到处找不到帮助窗口。
真是疯了......看的教程贴也不少了,但始终只能停留在勉强能看懂脚本的阶段,一改就要出bug,遑论自己写。
每次上来问问题,追问也基本没得到回答,好心酸......
作者:
喵呜喵5
时间:
2015-8-18 23:42
本帖最后由 喵呜喵5 于 2015-8-18 23:54 编辑
因为你根本没看懂原生脚本
看得懂脚本和看懂了脚本是不一样的,
以你说的这个 activate 为例
默认脚本不需要activate?请打开 Window_Command 看看第18行
activate方法又是什么?定义在Window_Base中:self.active = true
这个 active 属性和窗口的控制之间有什么关系?看Window_Selectable 的 process_cursor_move 和 process_handling 这两个方法的第一句。
这些都是比较底层的逻辑,既然你说你看得懂代码的话这些东西我不相信你会看不懂这些内容,但是你没去看或者忽略了它们,所以我说你看得懂原生脚本但是没看懂原生脚本
创建窗口的正确流程是什么?我自己认为是,首先你要搞懂你要创建的这个窗口有哪些功能,这些功能调用了哪些代码,而不是依样画葫芦看到这个Scene这么做自己便想到不想的全部抄过去
作者:
三途亚梦
时间:
2015-8-19 15:19
我专门去看了看你之前的问题,并不是“每次”都没有对你的追问进行回答。
而且同样的话也能还给你,给你回答的人你也几乎没有好好说声感谢的话。
他人愿意帮助你就已经称得上仁至义尽了,没有人有义务也不是所有人都奉行帮人帮到底,送佛送到西。
( `ー´) 说实话你的问题大多不是三两句话就能讲明白的,要解释起来还挺花时间的。
我给你个写东西的建议吧。
既然你认为自己有模仿写一点小脚本的能力了,那么就写一点测试一点,这样才知道究竟是哪里有问题。然后即时去解决。
知道自己还不熟练就别想着一下子就能把东西写到位。
至于帮助窗口你用的好像是那个物品介绍增强吧?不知道你用的是不是VIP修改过的那个版本,如果是,它的帮助窗口调用方式就不太一样了。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1