| 赞 | 58 |
| VIP | |
| 好人卡 | |
| 积分 | 47 |
| 经验 | |
| 最后登录 | 2026-10-17 |
| 在线时间 | 502 小时 |
- 梦石
- 0
- 星屑
- 4744
- 在线时间
- 502 小时
- 注册时间
- 2013-12-7
- 回帖
- 337
 
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 ekmomo 于 2016-11-29 17:33 编辑
伸手党:
LogoMap.zip
(696 Bytes, 下载次数: 166)
(打开游戏时载入某张地图以显示LOGO)
本帖不定时更新,渣排版勿喷。
昨天晚上入坑MV,第一时间体验插件系统,网上的评论有很多,我也不想做过多的评价。
所谓的JS插件其实并没有我想象中的友好,对我本人来说无所谓,但对于一个没有接触过RGSS的人来说,JS只是基础……
DAY1 打开游戏时载入LOGO
其实早在xp时代,自制脚本就有利用RM从上到下读取脚本内容,重新定义系统方法来自定游戏的传统。
系统代码:- Scene_Boot.prototype.start = function() {
- Scene_Base.prototype.start.call(this);
- SoundManager.preloadImportantSounds();
- if (DataManager.isBattleTest()) {
- DataManager.setupBattleTest();
- SceneManager.goto(Scene_Battle);
- } else if (DataManager.isEventTest()) {
- DataManager.setupEventTest();
- SceneManager.goto(Scene_Map);
- } else {
- this.checkPlayerLocation();
- DataManager.setupNewGame();
- SceneManager.goto(Scene_Title);
- Window_TitleCommand.initCommandPosition();
- }
- this.updateDocumentTitle();
- };
复制代码
插件代码:
- Scene_Boot.prototype.start = function() {
- Scene_Base.prototype.start.call(this);
- SoundManager.preloadImportantSounds();
- if (DataManager.isBattleTest()) {
- DataManager.setupBattleTest();
- SceneManager.goto(Scene_Battle);
- } else if (DataManager.isEventTest()) {
- DataManager.setupEventTest();
- SceneManager.goto(Scene_Map);
- } else {
- this.checkPlayerLocation();
- DataManager.setupNewGame();
- $gamePlayer.reserveTransfer(logomap, 0, 0);
- SceneManager.goto(Scene_Map);
- Window_TitleCommand.initCommandPosition();
- }
- this.updateDocumentTitle();
- };
复制代码
我们重置了游戏开始时的方法。
系统代码中- SceneManager.goto(Scene_Title);
复制代码 的意思是,将场景管理器跳转到Scene_Title
而我们
- <font color="#000000">$gamePlayer.reserveTransfer(logomap, 0, 0);
- SceneManager.goto(Scene_Map);</font>
复制代码
直译是:将Player放在某地图的0,0坐标然后将场景管理器跳转到Scene_Map
tips:为什么要建一张地图来操作LOGO?答:因为 事件(劇情)(Event)在地图编辑器中非常强大,你可以制作非常独特的内容。而且脚本——地图——事件本身就是一个很好的逻辑,如果你能理解MVC就能很好的理解这样的做法了。 虽然,这么做也有许多缺点。不过仅就我本人的来说,我更习惯这么做。
所谓某地图是我们使用插件管理器的一个功能——参数:
我们在插件开始时声明参数,RM编辑器从声明中得到三条信息,从上到下依次是【参数名】【说明】【默认值】。
并在插件中使用参数:
- var parameters = PluginManager.parameters('LogoMap');
- var logomap = Number(parameters['logomap'] || 1);
复制代码 第一行代码 读取 plugins文件夹下以LogoMap命名的js文件的参数,并将其以数组的形式赋值给parameters 。
第二行代码 是定义一个 Number类型的对象,并从parameters数组中取logomap的值,当logomap为undefined 或null时,以1为默认值。
翻译过来就是,我们把logomap从参数变成了一个可以调用的值~
如何定义一个载入事件
|
评分
-
查看全部评分
|