基于RPGMakerMV的JavaScript基础-3
来源:互联网 发布:日本轻小说软件 编辑:程序博客网 时间:2024/05/24 05:07
第一节 先做一道练习题
好了,现在我们就要正式开始了,首先先测试一下自己的水平,也可以帮着回忆一下学到的知识。请听题:
咪咪是一只聪明的小老鼠(什么什么?谁规定老鼠就不能叫咪咪了?真是!),她正在四处找水喝呢……她发现了一些水罐,里面都有水。她趴在每个水罐口上都试了一遍,结果仍然一口水没喝到——这些水罐里的水都很少,水面距离罐口太远,她用嘴够不着。这可怎么办呢?
如果是你,你是不是会想把水罐打翻?只可惜,咪咪只是一只小老鼠,没那么大力气呢。不过,这也难不倒她,聪明的咪咪自然有办法:她转过身来,把尾巴放进去浸湿,再喝尾巴上的水就好了,够聪明吧?
我们已知每个水罐里水面到水罐口的距离,还知道咪咪的尾巴最多可以伸进水罐口t 厘米。
根据这些条件,请你判断一下:有多少个水罐中的水可以被咪咪喝到?
要求:写一个函数,参数有两个值,一个是咪咪的尾巴长度t,一个是储存有水罐高度信息的数组,函数的返回值是可以被咪咪喝到的水罐的数量。
在事件的中插入脚本,并输入如下代码。
如果感觉脚本的编辑框太小,放不下的话,可以写好后去掉一些换行,或者直接把ifDrink函数放到一个插件里面,然后在事件中的插入脚本输入剩余部分。
另外,一些格式上的问题,或者语法上的问题,(数组的长度该如何获取呢?)这些都可以百度搜索到的。
百度是个好工具。百度是个好工具。百度是个好工具。
好了,这个题目自己就可以多用几个算例自己测试一下,下面我给出我的代码,放在图3-1里面,别想ctrl+c,ctrl+v,自己照着一个个的敲一遍,也是很有成就感的。
另外,写在js文件里面然后开启插件的方式也可以,这样你可以试试把后面几句也直接放在js里面有什么不同,如图3-2。
注意,插件里面的代码是会在游戏开始的时候就开始执行的,这点需要特别注意,这个特性如果把握不好就很酸爽了。
图3-1
图3-2
第二节 开始黑魔法-随机购买装备
如果前面的例子完成了,那就来看我的黑魔法吧。这次我们来做一个随机购买装备的插件。
就像这样,使用1000元钱,然后随机从设置好的装备列表获得一件装备,主要看运气,有可能获得一件小木剑,也有可能获得屠龙刀。
首先,我们得先搞清楚这几点,这样才能完成我们的工作。
所有装备的列表在哪里呢?
所有装备的列表,是在data文件夹下面以json的形式记录着,在游戏进行的时候,会依照着json文件中的数据创建一个一样的对象,各个对象的对应关系可以从rpg_manager.js中看到,如图3-3。我们可以调用$dataWeapons来获得武器的信息。
图3-3
怎么获得装备呢?
通过在各个核心js文件中搜索gain item、 change item等关键词,我们找到了获得物品的函数是放在rpg_objects.js中的Game_Party.prototype.gainItem函数。这样的话,我们也可以调用这个函数来获取装备,如图3-4。
图3-4
怎么获得并且控制当前的金钱数量呢?
一样的对gold,money等进行搜索,我们找到了控制金钱数量的方法,Game_Party.prototype.gold等等,如图3-5。
图3-5
随机数怎么得到?
这里,我们介绍几个js自带的函数。
- Math.random(); 结果为0-1间的一个随机数(包括0,不包括1)
- Math.floor(num); 参数num为一个数值,函数结果为num的整数部分。
- Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数。
利用这三个函数,我们就可以获得我们想要的随机数。
这样对思路的初步考虑,我们发现了一些问题,然后找到了解决的办法,这样我们就可以开始编程了,代码如图3-6,3-7,看备注。
图3-6
图3-7
这样,我们的基本功能就完成了。
看看效果,如图3-8,这样简单的使用刚才的方法调用就好了。第一次使用后,来了一把弓,如图3-9。第二次使用后,又来了一把弓,如图3-10。第三次使用后,来了一把斧子,如图3-11。
试了试,感觉效果还不错,那么我们自己就可以简单的进行使用了。
图3-8
图3-9
图3-10
图3-11
第三节 插件参数和命令
现在,我们要让别人也能方便的使用这个插件,肯定要做一些说明,但是,单看注释对某些完全不懂js的人还是太费劲,mv特有的插件参数和命令可以让他们也能比较省力的学习使用插件。
我们也要把我们的这个随机买武器插件扩展出参数和命令功能来,该怎么办呢?
还是要对照着人家的代码来分析,再次翻出EnemyBook.js找找看有没有什么参数,命令相关的部分,如图3-12。
图3-12
好,在打头的注释里面,我们看到了help,这里面的内容和插件管理器的帮助显示的一样,上面还有个param,这和插件管理器的参数也是一样。我们可以猜测,这就是我们需要的部分。
事实上,插件管理器可以解析js的脚本中有特定的格式的部分,把它们当做一些有特定含义的内容表示出来,但是这些东西在js里面确实是不起作用的。
好了,我们也复制一份到我们的RandomWeapon.js里面。再改改,如图3-13。
图3-13
像这样,我们也有了一个参数,但是,js是不能识别注释里面的内容的,该怎么让它起作用呢?我们继续看EnemyBook.js。好,我们发现了Unknown Data,这个param后面的词,现在在这两句话里面出现了,那么,我们也一样抄下来就好了,如图3-14。
图3-14
事实上,这里面出现的PluginManager.parameters里面包含了对js插件文件中的参数解析结果,我们可以通过它来得到在插件管理器中输入的参数,另外,这些设置好的数组,都是储存在plugins.js里面的,可以打开看看哦。
现在,参数的问题解决了,那么命令该怎么办呢?
我们继续找找在EnemyBook.js里面关于命令的部分,找到了这么两个部分,如图3-15。
图3-15
先把Game_Interpreter.prototype.pluginCommand放进了一个断头鬼里面,然后又给Game_Interpreter.prototype.pluginCommand赋值一个函数,最后在新的函数里面又调用了断头鬼的call方法。
先解释一下call方法,将a对象的方法加在b对象执行。简单来讲,这个过程就是一个扩展原来的Game_Interpreter.prototype.pluginCommand函数的功能的过程。
断头鬼相当于一个两个变量交换值的时候的临时变量,里面储存了没有被重新赋值过的原来的Game_Interpreter.prototype.pluginCommand函数的内容,然后重新定义Game_Interpreter.prototype.pluginCommand的时候调用临时变量的call方法,就可以让新的函数里面继承了原来久的函数的内容。总之,我们照着写就可以了,完成后,如图3-16。
这时候,我们调用的话,就可以用插件命令来调用了,如图3-17。
图3-16
图3-17
- 基于RPGMakerMV的JavaScript基础-3
- 基于RPGMakerMV的JavaScript基础-1
- 基于RPGMakerMV的JavaScript基础-2
- 基于RPGMakerMV的JavaScript基础-4
- 基于RPGMakerMV的JavaScript基础-5
- 基于RPGMakerMV的JavaScript基础-6
- RPGMakerMV的插件学习
- Javascript基于对象基础
- javascript基于对象编程基础
- 基于对象的javascript
- 基于javascript的技术
- 基于原型的javascript
- 【Javascript基础】Javascript的简介
- javascript基础之十(基于原型实现类的继承)
- javascript基础之十一(基于Object.create()实现类的继承)
- javascript的语法基础
- JavaScript的一些基础
- JavaScript的基础摘记
- 数据库中范式的分类和它们之间的转化
- nginx解决前端跨域配置
- Data Structure: 图的拓扑排序 (Course Schedule)
- Centos 6.9 Install XFS--parted
- 解决启动tomcat时,一直卡在Deploying web application directory的问题
- 基于RPGMakerMV的JavaScript基础-3
- 消息中间件activeMq ------------开篇(一)
- SQL Server 2008R2 Express 登录模式修改
- hbase 替换 mysql
- 计算机网络常见问题
- 剑指offer第二题替换空格 不用replace
- 关于C语言里格式化小数输出
- 文章标题
- hdu6199