脚本的搭建真的是件非常具有创造性的事情,也是游戏开发里最核心的技术活,因为它是整个游戏的发动机,粘合剂,涉及整个游戏的方方面面。一般还集成在地图编辑器里,比如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) --播放一个音效