公众号原文

完成了我要做游戏(8)的内容,在不涉及js的层面,这个DEMO其实已经做得七七八八了。

不过本回所说的js,在整个RMMV游戏制作流程中,其实占了非常大的比重。虽然对于萌新制作者,可能用不上,但对想要提升自己作品用户体验的制作者,这是必须了解的内容。

用过RM系列的人都知道,历代RPG MAKER用的都是自己的RGSS脚本来对游戏进行扩展,而到了MV这一代,转而使用了较为主流的JavaScript,令玩家能以制作外接插件的形式来修改游戏内核。比起RGSS时代,js插件更易管理,操作也更为便捷。

一款MV游戏,js库主要分为两块。核心的js源码部分,是游戏运行的基础。一般来说,不要莽撞地去改它们。

而plugins部分,汇集着制作者使用的插件。相比起前几代RM,MV自带几个实用的官方插件,如分辨率调节、横板菜单、图鉴系统、武器技能等。

这些js代码会随着RM版本更新,如果制作者的工程js库低于RM本身版本,可能会出现一些小问题,这时就需要进入软件目录将js库复制到工程中完成覆盖。


对于鱼虾这样对JavaScript一无所知的小白制作者,想要自己写插件是非常难的。不过单纯地想要使用插件倒很方便,现在网上已经有了很多成熟的插件库,例如知名度极高的YEP系列,大部分制作者都会用到。

就这个DEMO而言,采用大框架的成熟插件明显是浪费,鱼虾仅仅想要做一些微小的界面调整,因此决定,自己搞。

话是这么说,真的瞎搞当然是不行的,还是要对源码js有基本的了解。这个不需要大家有编程基础,只要有点儿英语基础,能看懂文件后缀和内容就行了。打开源码js所在的文件夹,可以看到后缀名将源码分为核心、管控、物件、场景、精灵和窗口,打开一个,可以看到源码内部都将功能进行了明确的分区和title注释。

针对这个DEMO,鱼虾想做的是显示层面的修改,因此只需要关注manager,scences和windows模块。manager管理的是游戏中的“数据”,scences和windows的关系可以简单(但不正确)理解为,scences的搭建需要调用多个windows。

就鱼虾现在这个程度,之前就说了,想要做个什么是很难的。但是加法做不了,还不能做减法吗?接下来,鱼虾就教大家用注释大法来对js进行一些实用的修改。

就从最最简单的地方开始吧。这个DEMO只有一场战斗处理,而MV默认在每场战斗开始和结束都会播放敌人信息和收益信息,想要把这块去掉,怎么办?

用记事本(推荐其他带编译功能的编辑器如notepad)打开manager.js文件,找到BattleManager:

这一块就是战斗进程的管理,一点一点往下翻找到displayStartMessages,播报开始信息这里:

这个不需要任何编程基础都能够看明白的逻辑结构,只需要对这句加上注释:

//$gameMessage.add(TextManager.emerge.format(name));

好了,战斗开始时再也不会有敌人信息了。同理,还有之后的displayRewards,播报收益,也可以直接注释掉,得到如下代码:

将这两节代码复制粘贴到新的文本中,鱼虾取名BTM,改后缀为js,放到plugins文件夹,就可以在游戏的插件管理菜单找到。选中它然后将状态设为ON,OK,通过注释源码制作的不显示敌人信息和收益插件就完成了。

为什么要另存代码制作插件呢?为什么相似度如此之高的代码会有用呢?

在MV游戏建立进程中,调取插件js的优先级要高于源码js,存于插件中的同功能代码对源码有一定的覆盖性,所以另存一个插件,可以在不破坏源码的情况下获得想要的效果,安全又简单。


完成最简单的显示修改,下面就进行进阶修改——菜单修改。游戏初始给定的功能菜单包含道具、技能、装备、状态、队形、选项、保存和退出游戏这8个选项,由于DEMO进出场1名角色,队形列是不需要的,同时选项可以在开始菜单中修改,也要把它去掉。

聪明的大家已经猜得到,这算windows.js相关的问题。对,也不对。先往下走,打开windows.js,搜索Menu,下拉找到Window_MenuCommand部分,也就是菜单选项条目,找到下图代码。轻车熟路地将队形和选项的英文注释掉。

同样将这段代码复制,新建js文档另存如plugins,再将这个新插件打开。好了,菜单里面已经没有了选项和队列了,是不是清爽很多呢。


windows.js里还有一块鱼虾要调整的,就是角色状态的显示。打开状态菜单,选择人物,角色的状态栏如下。鱼虾已经在【数据库】【用语】中把LV、经验值之类的用语给清除了,但界面还残留着突兀的信息。而且在主界面,同样残留着LV1的数字1,也需要把它消掉。

在Window_MenuCommand往后翻,来到Window_MenuStatus,The window for displaying party member status on the menu screen,菜单界面角色状态显示。第一时间寻找角色等级信息相关内容,会发现,木有!!!MenuStatus里面使用的都是drawItem而不是drawActor,让人一是摸不着头脑。别慌仔细看看代码流程,把Item当作Actor,可以看出,窗口是先画了一个状态窗,再在状态窗里画了一个角色简单状态。

不过往后翻会发现,drawActorSimpleStatus的内容并不在后面,在哪里呢?通过搜索,可以在Window_Base中找到这一条目,最终定位完毕,直接把drawActorLevel显示给注释掉。同理继续搜索drawActorLevel,继续注释掉Window_Status里的内容,将代码另存为插件激活,等级数值就再也不会显示了。

学会了上面一套流程,经验值的消去已经变得轻而易举,在把drawExpInfo注释掉后,鱼虾想要的状态内容显示就完成了。很简单,对吧。


继续注释大法,可以通过注释Window_ActorCommand战斗指令窗口,将普通攻击和防御指令消去。到了这一步,鱼虾已经简化了指令选择和状态显示,窗口内容的改动就基本结束了。

事实上,除了修改windows.js,还可以修改scences.js来达到类似的效果。可以简单理解为,修改windows.js是直接在一页纸上乱涂乱画,而修改scences.js是选择本子里的哪几页纸有用。scences.js的修改可能会涉及按键操作的流程问题,所以比windows.js难搞一些。

需要注意的是,各个js中的原有分区注释内容其实除了分段功能外,还有影响代码的顺序调用。在复制代码到新插件文本中时,请不要直接复制原有注释,否则游戏在读取插件时,会根据注释读取原源码js内容,后续修改效果不会出现。

好了,界面修改完毕,内容也基本完成,剩下的,就是打包发布了。有兴趣的朋友可以看看附带的(9)Plus里的3个小功能更改,鱼虾发现那3个问题萌新问的非常多。

点击【阅读原文】可以查看RMMV F1中文说明文档,对新手真的很有帮助。


不知今年的chinajoy有什么好作品会出现

我很期待河洛群侠传

使用MV制作最简单的游戏:我要做游戏(9)相关推荐

  1. 制作一个简单的switch小游戏

    好的,那么,我们可以这样来制作一个简单的 switch 小游戏: 首先,我们需要先引入所需的库,如 stdio.h 和 stdlib.h. 接着,我们可以使用 printf 和 scanf 函数来输出 ...

  2. 使用MV制作最简单的游戏:我要做游戏(7)

    公众号原文 在两年前的上一章,鱼虾简单讲解了关于[技能]的相关内容,并准备为各个角色配置相应技能.这一配就是2年. 那么配完了吗?当然没有!何止没有,简直是还没开始. 由此鱼虾悟出了一个新的道理,这个 ...

  3. 使用MV制作最简单的游戏:我要做游戏(4)

    公众号原文 本期将设计游戏中基本,也是核心的数值元素.不想循规蹈矩的朋友也可自行回顾前三期的内容: 我要做游戏(1) 我要做游戏(2) 我要做游戏(3) 呃,说道数值,可能一些人脑海里觉得它是这样的: ...

  4. 使用MV制作最简单的游戏:我要做游戏(6)

    公众号原文 在上一章,我们将[战士][法师][牧师]和[盗贼]四个[职业]的基本设定进行了补完,余下的角色相关设定暂且放一放.这次就先进行角色[技能]的设计. 前文也提到,这游戏鱼虾我并不想做很长的流 ...

  5. 使用MV制作最简单的游戏:我要做游戏(9)PLUS

    公众号原文 以上内容做完,其实这个DEMO已经算是完成了. 接下来鱼虾要讲3个从大佬那里学来的,RMMV新手又时常问道的实用功能. (1)物品菜单的修改 这个问题长见于想要制作解谜类游戏的制作者,他们 ...

  6. html5 游戏制作教程,利用HTML5 Canvas制作一个简单的打飞机游戏

    之前在当耐特的DEMO里看到个打飞机的游戏,然后就把他的图片和音频扒了了下来....自己凭着玩的心情重新写了一个.仅供娱乐哈......我没有用框架,所有js都是自己写的......所以就可以来当个简 ...

  7. 网页游戏制作html5,利用HTML5 Canvas制作一个简单的打飞机游戏

    之前在当耐特的DEMO里看到个打飞机的游戏,然后就把他的图片和音频扒了了下来....自己凭着玩的心情重新写了一个.仅供娱乐哈......我没有用框架,所有js都是自己写的......所以就可以来当个简 ...

  8. android小游戏编程视频下载,【安卓游戏】使用 Android Studio 打包 RPG Maker MV 制作的游戏,生成 apk 安装包...

    RPG Maker MV 是一个简单易用的游戏制作软件,即使不会编程也能做出一个有模有样的游戏.但是它只能生成基于 Html5 的游戏文件,而不能直接生成安卓手机需要的 apk 文件,所以我们要自己想 ...

  9. 利用js制作的简单网页小游戏

    利用html和js制作的简单的网页小游戏 这个是我第一次利用js制作网页的小游戏,若有错误欢迎指出. 设计的游戏是类似于配对的小游戏.废话不多说,直接上代码,代码中有比较详细的说明. <!DOC ...

最新文章

  1. css的几种使用方式有哪些,引入CSS的方式有几种?
  2. guid linux 识别的分区表_Linux系统MBR和GPT分区的区别介绍
  3. java锁一次交互二次握手_Java后台开发面试实战(二):TCP三次握手四次挥手
  4. 企业战略:前瞻性决定发展性
  5. 高薪面试题必备之HashMap 的底层原理
  6. 不行是谁决定的呢,明明你眼前就有这么多的可能啊
  7. unity创建项目报错:解决sentinel key not found (h0007) Unity
  8. FreeChart柱状图中如何取消柱子的倒影
  9. 查询group_by 与 order by
  10. ai模仿声音软件_你准备好跟AI机器成为同事了吗?
  11. RabbitMq之发布订阅模式
  12. 陈赫入场,抖音背后的决心!
  13. ubuntu下caffe的FCN8模型训练
  14. 计算机信息技术专业排名,国内计算机信息技术学科强校盘点
  15. Win10查看已存储WiFi密码的两种方法
  16. 微信小程序开发手账从入门到部署【持续更新】
  17. 集成学习(上):机器学习基础task1-熟悉机器学习的三大主要任务
  18. 国企,私企与外企利弊通观--关键时刻给应届毕业生及时点拨
  19. php aes 256 加解密,PHP完整的AES加解密算法使用及例子(256位)
  20. Pdf.js body.getReader 报错问题

热门文章

  1. FileZilla的使用简章-XAMPP自带FileZilla
  2. LTE学习笔记--PHY--RSRP、RSRQ、RSSI和SINR
  3. OpenSees学习记录【二】:柱构件的Pushover分析
  4. CTU Open Contest 2019 计蒜客重现补题报告
  5. 收音机RDS功能介绍
  6. 超市使用erp系统有哪些优势?
  7. 飞鸽传书是怎么就变成飞秋了的
  8. 【图文详细 】Scala——编程练习
  9. Live Services Jumpstart第一天
  10. golang面试题题目归纳