想要实现游戏中的一些特定功能,例如现在看起来简单无比的得分、等待机制等等对于一些初次接触游戏开发的玩家来说依然是一件比较困难的事情,不过罗布乐思(Roblox)这款编辑器对于新手开发者十分友好,不仅仅靠编辑器本身的机制就能大致完成游戏主体,官网与编辑器自带实例的教程也能让新手快速运用代码。
我对于游戏开发来说勉强沾的上边的也就是当年用《魔兽争霸》的地图编辑器做过一些玩法,基本上也是处于小白阶段,在接触罗布乐思(Roblox)之后先是尝试做了一款比较简单的游戏之后便开始尝试利用一些脚本来构建一款比较复杂的游戏。
这款游戏参考了参考了魔兽世界战场战歌峡谷的玩法,我将其命名为《修仙夺旗》大体上是夺旗抢点类游戏,规则是将对方门派旗帜带回己方基地记一分,游戏时间结束或某一方获得3分即判定胜负,玩家可以通过战斗击*地方玩家,拖慢对方夺旗的节奏,亦可通过收集地图上的法术来帮助自己快速夺取对方门派旗帜。
因为这篇文章主要是分享一下代码编写的心得,所以场景搭建上就不在赘述了,主要是利用了编辑器自带的插件来改善了一下光影效果。
在代码上我通过官方实例了解到了夺旗游戏的基础运行条件和所需代码,以及调用事件对象等等,将其运用到了我这款游戏之中。
但是官方的夺旗仅仅是一个玩法的基础演示,光靠这些还不够,所以我加入了“修仙”这一设定,玩家可以在地图内拾取法术球来获得增益,同样这些代码也可以在官网的教程中了解。
例如游戏中的加速法球,其效果是玩家在触碰之后会获得速度的增益,并且一直持续到角色死亡,而其他的增益都是只有几秒的持续事件,所以我将其放置在了地图中央的水池中,提高了获取难度。
而这个法球加速效果的实现则是利用了游戏代码中的touch函数来实现的,并且利用if语句来进行判断,判定条件为如果玩家角色也就是代码中的hunmanoid碰触到了这个组件时给予这个角色速度的提升。这个判断条件的代码官网上已经给出,所以在这里我就不放出这段代码了。
其次便是类似与法球被拾取后的循环刷新条件,在这里我选择了一个比较取巧的方法,那就是利用touch函数在触发碰撞之后为法球赋值,将其透明度调到最大并取消碰撞体积,同时给予一个几秒的时间判定,等时间条件达成例如碰撞3秒之后恢复法球组件的原透明度和碰撞体积,从而实现拾取之后等待一段时间刷新的效果。
目前所使用的代码脚本并不复杂,罗布乐思(Roblox)编辑器脚本基于lua语言的特性使其只需要短短几行代码就可以实现想要的功能,对于初学者来说其实是十分便捷的,不然一旦代码出bug查错也是一件工程量巨大的任务。
当你初步上手之后你就会发现开发游戏的乐趣一点也不比玩游戏少,特别是攻克一道道难关实现自己想要的功能时的快感更是无可比拟,再加上官方提供的技术支持为你保驾护航,对于游戏开发初学者来说是一次不可多得的学习机会。
加入QQ群了解更多信息:163421242
提交完整策划案、团队介绍、作品体验地址,到邮箱roblox@tencent.com