RPGMAKER游戏引擎基于JavaScript的插件制作(二)——如何理解插件,以及编写代码时的注意事项

RPGMAKER游戏引擎基于JavaScript的插件制作(二)——如何理解插件,以及编写代码时的注意事项

之前写的时候不想写这部分就先跳过了,于是拖到现在…
这篇主要作用是做一些细节上的整理,根据我的经验不断完善,也欢迎在评论中补充。

2. 1如何理解插件

我认为读我这篇博客的人应该都已经大概了解过插件了,但我还是按照自己的理解说一下吧。

游戏引擎虽然已经预设了许多的功能,但是我们做游戏的往往想添加一些新的功能,又或者修改一些不完善的功能,而游戏引擎也往往会留下一个接口,让我们可以使用自己的代码接入其中,我们自己写的,独立于原来代码的文件,就是插件。

MOD,一些外挂,或者是没必要写入引擎却需要用到的小功能,都是写在插件里,学习插件使用,有利于我们了解游戏引擎的原理,为以后开发完整的游戏打下基础。
骑马与砍杀的MOD就是直接用开发者提供的游戏引擎制作的,而GTA系列则有专用的MOD编辑器

具体插件如何使用后面的贴会介绍。

2.2编写代码时的一些注意事项

JavaScript作为一个最初用于网页编程的语言,很多功能都是为了网页设计的,比如正则表达式,DOM(文档对象模型),json表(用对象来传递数据)都是为了方便网页的使用,当然json现在由于其易于解析的特性,现在也成为了常见的数据交换语言。

我仅介绍几个在RM使用中需要比较特别注意的JavaScript知识点:


2.2.1命名的自我修养

我觉得没学会规范的命名的人都不能算合格的编程者,好的命名不仅对你自己有用,对你的合作者更重要,这一点我就不赘述了

变量名,对象名,函数名:“驼峰命名法”,即第一个单词采取全小写,后面的采取首字母大写,如:collegeStudent
createObject
命名空间:自制多个插件时,为了方便多人协作,常先以自己的名字缩写设立一个命名空间,然后再在这个空间下设子空间,如:

var JRSXZM=JRSXZM||{};  //使用或语句是为了防止重复定义覆盖掉之前定义
JRSXZM.sonSpace={};

数据类型转换函数:所有单词首字母大写,如String:字符串转换函数
常量:全字母大写,单词间以下划线分割如MAX_VALUE

2.2.2关于数据类型

1.JavaScript变量类型是动态类型,即你不需要对一个变量设定类型,而是根据你的赋值自动确定。
这也许省事了很多,但是要注意,这也很容易出错,字符串必须用引号;
如果你不放心,可以使用以下语句强制定义,这时创建的是一个空变量
var a=new string

2.JavaScript中数组是一种重要的数据储存单位,JS的数组自带完善的处理方法,对于编程很有帮助

3.Null和Undified:报错时经常出现的字符,前者指“无效”,即指针指向无效区域,你可以通过给变量赋值Null清除内容,而后者则是表明你没给这个变量赋值,两者区别要搞清楚,这对你DeBug很重要。

2. 2. 3 尽量将方法模块化

编写函数时,如果这个函数的功能需要由几个小功能合在一起实现,那就将它们模块化吧,即每一个小功能都给它写一个函数。

如一个按钮点击响应的功能,包括点击检测,点击后图像变化,点击后事件响应,事件响应又包括不同条件下的响应,这些小功能都写在单独的方法里。

另外,之所以要模块化还有另外一个原因,那就是一个功能的执行需要调用不同对象里的数据,举个简单的例子:
战斗是使用Manager对象处理,战斗中使用物品是要对Object对象进行处理,使用技能是对Actor对象处理,如果都写在一个函数里,为了调用其它对象的方法,就在加上一大堆前缀,如:

battleManager{  //战场处理者对象
object. useObject(型参); //调用Object对象中的使用物品函数
actor. playerActor. useSkill(型参) ;//调用玩家角色的技能
}

如果你已经把那些方法都写在了battleManager中的一个细分函数里的话,就可以

battleManager{  //战场处理者对象
useObject(型参); //调用Object对象中的使用物品函数
useSkill(型参) ;//调用玩家角色的技能
}

这样就不会面临在一个花括号中处理三个不同对象的尴尬情况了


以上看不懂没关系,有些内容是为后面内容补充的

发布了9 篇原创文章 · 获赞 24 · 访问量 2029

猜你喜欢

转载自blog.csdn.net/xmoss/article/details/104747377