设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 7407|回复: 16

[有事请教] 关于菜单窗口

[复制链接]

Lv2.观梦者

梦石
0
星屑
269
在线时间
24 小时
注册时间
2017-11-1
帖子
15
发表于 2018-3-14 21:21:47 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
各位巨巨,又来请教一个问题。

想达到打开菜单界面的时候显示控制菜单(commandWindow),物品栏(ItemWindow)和物品说明(helpWindow),是不是应该改写sceneMenu.prototype.create方法呢,但是scenemenu里没有sceneitem的变量,

那么是不是需要把scene_menu去继承scene_item的全部方法,然后在scene_menu.prototype.create中创建itemWindow和helpwindow呢?

希望能详细讲讲。

顺便水一下经验。

Lv3.寻梦者

梦石
0
星屑
3394
在线时间
461 小时
注册时间
2013-12-7
帖子
333
发表于 2018-3-14 21:35:22 | 显示全部楼层
不用,把使用物品的相关方法加上就行了。还有,你如果有设置了目标的道具还需要一个角色窗口。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
269
在线时间
24 小时
注册时间
2017-11-1
帖子
15
 楼主| 发表于 2018-3-14 21:46:21 | 显示全部楼层
ekmomo 发表于 2018-3-14 21:35
不用,把使用物品的相关方法加上就行了。还有,你如果有设置了目标的道具还需要一个角色窗口。 ...

继承的话也不知道如何加,好像也没有同名的方法。

我尝试把sceneitem一些相关的方法直接将对象改成了scenemenu,但是有一些变量好像scenemenu调用不了,运行会出问题
难受

点评

不难受了,你先做别的,我帮你写。  发表于 2018-3-14 21:49
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3394
在线时间
461 小时
注册时间
2013-12-7
帖子
333
发表于 2018-3-14 22:17:20 | 显示全部楼层
本帖最后由 ekmomo 于 2018-3-14 22:53 编辑

这样? Menu.rar (893 Bytes, 下载次数: 90)
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3394
在线时间
461 小时
注册时间
2013-12-7
帖子
333
发表于 2018-3-14 22:19:22 | 显示全部楼层
本帖最后由 ekmomo 于 2018-3-14 22:54 编辑

仅供参考吧。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
269
在线时间
24 小时
注册时间
2017-11-1
帖子
15
 楼主| 发表于 2018-3-14 23:15:50 | 显示全部楼层

十分感谢,要的大概是这种效果

有个不成熟的建议,收我为徒吧大神

关于您的脚本我还有一些问题,明天再打扰您啦。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
269
在线时间
24 小时
注册时间
2017-11-1
帖子
15
 楼主| 发表于 2018-3-15 20:24:51 | 显示全部楼层
  1. Scene_Menu.prototype.start = function() {
  2.     Scene_MenuBase.prototype.start.call(this);
  3.     this._statusWindow.refresh();
  4.     this._actorWindow.refresh();
  5. };
复制代码

请问这两个refresh在这是刷新什么呢

  1. Window_MenuStatus.prototype.setFormationMode = function(formationMode) {
  2.         this.show();
  3.     this._formationMode = formationMode;
  4. };
复制代码

这个好像多了一个this.show(),其目的是为了显示编队?但为什么原函数没有这行代码呢

还有一个比较宽泛的问题,总感觉想写插件来实现功能的时候,改写方法不能够顾及得很到位,有时候debug也找不到问题;还有就是mv里js源码很多函数功能还是看不懂,比如window_selectable里一些方法等。这些需要详细学习吗?我现在基本是:为了粗略实现某功能——>找相应scripting视频——>摸索实现(主要花时间在想代码的功能是什么,改不一定改得出来
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3394
在线时间
461 小时
注册时间
2013-12-7
帖子
333
发表于 2018-3-16 10:04:27 | 显示全部楼层
第一个问题,refresh()让图片提前加载,如果去掉的话会出现第一次打开没有脸图的问题。
第二个问题,因为默认的菜单界面Window_MenuStatus构造的_statusWindow默认是显示的,我把他隐藏了,而需要显示它的时候都需要setFormationMode,最好的方式就是把show方法加到这里了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3394
在线时间
461 小时
注册时间
2013-12-7
帖子
333
发表于 2018-3-16 10:19:33 | 显示全部楼层
本帖最后由 ekmomo 于 2018-3-16 10:22 编辑

你可以尝试着回答下我的几个问题。
1.为什么类似function Scene_MenuBase()的首字母是大写(大驼峰)而一般函数(如alert)的首字母是小写?
2.this是什么?
3.在prototype下写方法和在initialize里直接定义一个方法(或者属性)的区别是什么?

如果这几个问题你都搞明白了,可以研究以下MV默认的脚本是怎么运行的(从哪开始怎么刷新)。
还有兴趣的话可以研究下pixi引擎渲染逻辑。

最后,多用F8来解决问题。控制台既可以当计算器用,又可以去找对象,找原型,能实时的改游戏内的数据,
可以找内存泄漏,总之这是MV使用JS所带来的最大的便利。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
269
在线时间
24 小时
注册时间
2017-11-1
帖子
15
 楼主| 发表于 2018-3-17 15:09:44 | 显示全部楼层
ekmomo 发表于 2018-3-16 10:19
你可以尝试着回答下我的几个问题。

如果这几个问题你都搞明白了,可以研究以下MV默认的脚本是怎么运行的( ...

尝试回答您的问题:
1.构造函数以大写字母开头,普通函数以小写字母开头,用作区分。
2.this做引用,取决于函数所处的环境。
3.一头雾水。initialie作为一个变量为其他构造函数的基础?

至于我现在的js水平也就是新手,知道基本的语法语句函数。关于原型翻阅过资料但尚且模模糊糊,一些其他比较杂的概念都是看油管上一些 mv scripting上使用的,并不了解其内里。关于内存泄漏离我可能还有很多距离。

至于研究mv默认脚本运行流程之类,我很乐意,但还是苦于寻找相应的指导。虽然6r和油管有很多脚本教程,但是看的时候还是很迷茫,感觉和用的挂不上钩。反而是我从改脚本出发去进行学习感觉有目的一些,但这时候js本身知识储备不够和不了解mv里的许多东西,问题就凸显了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-28 21:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表