首先,本篇文章是零基础开发RPG游戏-开源讲座系列文章的第四篇,来实现游戏的脚本化,和利用游戏脚本实现地图场景的切换,离上次更新貌似很长时间了,你在看下面的文字之前,需要先了解前三篇在下啰嗦了些什么东东。
html5游戏开发-零基础开发RPG游戏-开源讲座(一)http://blog.csdn.net/lufy_legend/article/details/7063316html5游戏开发-零基础开发RPG游戏-开源讲座(二)-跑起来吧英雄http://blog.csdn.net/lufy_legend/article/details/7076064html5游戏开发-零基础开发RPG游戏-开源讲座(三)-卷轴&对话实现http://blog.csdn.net/lufy_legend/article/details/7094567
一,什么是游戏脚本
简单说,游戏脚本就是依据一定的格式编写的可执行文件,游戏可以通过脚本中自定义的语句来执行相应的逻辑。
二,为什么要将游戏脚本化
游戏脚本,可以令我们的游戏动态化,比如当我们开发了一款rpg游戏,里面的剧情,事件以及地图等,我们如果将这些全部写进程序里,当然是可以的,但是一旦出现问题,哪怕几个错别字,我们需要先将这几个错别字改正,并且将整个程序重新编译发布一遍,这个过程是相当令人反感的,因为如果游戏的程序跟着游戏的内容不断进行修改的话,那只会使你的程序越来越复杂。但是如果我们将这些可重复的数据,都定义到游戏程序之外的文件里面,当游戏引擎开发完毕,我们的游戏通过读取这些外部文件,来执行相应的剧情和事件,那么,像上述当我们的游戏出现了问题,我们只需要改动这些外部文件就可以了,并不需要重新编译整个程序,这样便使得我们的游戏开发,变得便利简洁。
*当然,对于html5来说,不需要重新编译程序,但是对于rpg的游戏来说,脚本还是必不可少的,因为游戏的剧本不可能全都写到程序里...
三,如何来实现游戏的脚本化
好了,接下来,先来考虑以什么形式来制作游戏的脚本,我们有多种选择,可以选择xml,可以选择json,也可以选择纯自定义语法,
如鄙人开发的flash游戏脚本L#http://blog.csdn.net/lufy_legend/article/details/6889424
这次,我为了省事,选用比较方便处理的json,因为javascript可以很轻松的处理json数据。
目前游戏中实现的内容有,地图场景添加,游戏人物添加,以及人物对话的实现。那么,我在设计游戏脚本的时候,必须包含这些数据,然后才能将这三项功能用脚本来控制。
首先看下面的json
我将脚本定义成了变量,实际游戏制作的时候,脚本应该储存到一个外部文档当中,在这里我只是讲解一下理论,如何完善那是后话了,哈。
可以看到,json中,包含了地图相关的map数组和mapdata数组,添加人物的相关数据,以及对话的数组。这样,我在游戏显示的时候,只需要读入json数据,然后根据这些内容来显示游戏画面就可以了,定义一个initScript函数来进行这些操作。
removeAllChild方法是legendForHtml5Programming引擎独有的方法,可以用来移出LScript显示层上的所有子对象,从而实现本游戏中各个显示层的初始化工作。
修改一下addChara方法,如下
即,根据json脚本中的add数组,来添加游戏中的人物。
好了,运行一下游戏,可以看到,游戏正常显示了,和之前一模一样,实现了同样的功能。
四,利用游戏脚本实现地图的切换
为了让大家看到游戏脚本的便利性,现在利用脚本实现游戏中的场景切换。
将json脚本修改如下
可以看到,我添加了stage02,即第二个场景,并且在脚本里引入了jump节点来控制游戏场景的切换,其中jump中的at表示游戏主人公移动到达的坐标,to表示到达这个坐标后跳转到的画面名称。这里的jump之所以是数组,是因为一个场景也可以跳转到其他多个场景。
上面的脚本实现了stage01和stage02两个场景的互相跳转。
为了读取这个jump,以及实现跳转,我们需要在游戏主人公移动一个步长之后,判断一下是否应该跳转了,修改Character类的onmove方法
我添加了一行
表示,移动完后如果该人物是游戏主人公则进行跳转判断
所以,我们需要添加一个checkJump方法
好了,一切都很简单吧,运行游戏看看效果吧,小鸣人走到地图的小房门的部分是,场景发生跳转
游戏测试URL:
http://fsanguo.comoj.com/html5/rpg5/index.html
本次更新源代码下载:
http://fsanguo.comoj.com/html5/rpg5/rpg5.rar
零基础开发RPG游戏-开源讲座系列文章,结贴了,如有问题欢迎大家指正,也欢迎大家留言一起探讨游戏制作以及改进的方法。
分享到:
相关推荐
[游戏开发参考书-用DirectX编写RPG游戏]. Programming.Role.Playing.Games.with.DirectX
Android游戏开发方向游戏全程实战开发(飞行射击类游戏+RPG游戏开发)
Java RPG 开发讲座 对应PPT 。 Java RPG 开发讲座 对应PPT 。
unity4.3.4f1-----unity3d RPG游戏《外星人》完整源码下载.zip unity4.3.4f1-----unity3d RPG游戏《外星人》完整源码下载.zip
(5.x-2019)unity3D RPG游戏开发包 Top-Down RPG Starter Kit.unitypackage
虚幻引擎4-UE4-RPG-游戏开发-合集(56)
c#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的...
RPG游戏必备--背包;RPG游戏必备--背包;RPG游戏必备--背包;RPG游戏必备--背包;RPG游戏必备--背包;RPG游戏必备--背包
CocosCreator开源游戏开发框架,附文档说明。包含GameMain、AudioManager、ConfigManager、GameController、GameDataManager、ListenerManager、TimeManager、UIManager、ShaderManager、MathExtension、String...
D5Rpg 网页游戏开发套件,D5Rpg 网页游戏开发套件,D5Rpg 网页游戏开发套件
unity RPG游戏Action-RPG Starter Kit 5.1 unity RPG动作游戏源码Unitypackage包 unity RPG游戏Action-RPG Starter Kit 5.1 unity RPG动作游戏源码Unitypackage包 Unity精品游戏源码
制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏制作RPG游戏...
Unity 3D的Ultimate MMO RPG Kit 在线 mmo rpg 游戏开发
游戏开发资源直接打开unitypackage即可在Unity中使用,还包含一个示例场景。 也可以用Blender打开原始模型进行编辑。
这个是日本一个做RPG游戏开发的软件,简单而强大
这个小程序就是测试地图的滚动的,方便刚接触RPG游戏制作的人群
5个好玩的github游戏区开源项目,包含c++,java,javascript,rust。
该源码仅供学习使用,欢迎访问我的博客:http://blog.csdn.net/crow_html5
RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门RPG MAKER 脚本入门
内含193个脚本编辑集合,非常有用,很好的一个选择