脚本的搭建真的是件非常具有创造性的事情,也是游戏开发里最核心的技术活,因为它是整个游戏的发动机,粘合剂,涉及整个游戏的方方面面。一般还集成在地图编辑器里,比如War3,RPGMaker这些。总之,把脚本框架搭好,我个人认为是一个好游戏必备的核心要求。
今天刚把SheRO的Lua框架搭完,觉得用来创作自己的小游戏完全够用了。还是记一些思路吧,仅供参考,不涉及源码及Lua与C++集成这些,因为我觉得这些开源后就能看明白的,而且我用的是LuaPlus。实在没啥讲的。
我在SheRO里暴露给Lua的函数有这些,分为3个模块,GameLogic,GameView,Audio。
GameLogic::GetPos(param) --获得某个Entity的Pos
GameLogic::SetPos(param) --设置某个Entity的Pos
GameLogic::GetAttribute(param)--获得某个Entity的属性
GameLogic::SetAttribute(param)--设置某个Entity的Pos
GameLogic::CreateEntity(param)--创建一个Entity,Npc,Mob等
GameLogic::RemoveEntity(param)--删除一个Entity
GameLogic::ChangeEntityState(param)--更换一个Entity的状态机
GameLogic::ChangeMap(param) --更换地图
GameView:Talk(param) --显示一个Npc对话框直到所有语句显示完毕
GameView:AddEffect(param) --显示一个特效
Audio:AddAudio(param) --播放一个音效

本文分享了使用Lua搭建游戏框架的经验,包括将Lua作为数据库、地图初始化、触发器和AI的功能实现。通过Lua实现游戏的数据库存储,地图加载,主动与被动触发器,以及怪物AI的决策模块。示例介绍了Boss关卡的设计,强调了Lua在提高游戏可玩性和灵活性方面的优势。
最低0.47元/天 解锁文章
1823

被折叠的 条评论
为什么被折叠?



