Lua在游戏开发中应用是本文要介绍的内容,主要是来了解并学习lua中游戏的开发,具体内容的实现,来看本文详解。
创新互联是一家专业提供昌江黎族企业网站建设,专注与做网站、成都网站设计、H5高端网站建设、小程序制作等业务。10年已为昌江黎族众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
前些日子一直忙于开发BigTank项目(下载地址参见劣质设计网站:http://www.buaa-mstc.com,不支持IE),总结了一些Lua在C#项目中的应用方法。
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。
Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。
在C#中使用Lua也十分简单。
- LuaInterface is a library for integration between the Lua language and Microsoft
- .NET platform’s Common Language Runtime (CLR). Lua scripts can use it to instantiate CLR objects,
- access properties, call methods, and even handle events with Lua functions.
从LuaInterface网站上可以下载到这个库。在你的项目中引用LuaInterface.dll后就可以开始了。
BigTank项目还没有确定是否要开源,所以我拿自己写的电子宠物程序演示一下(它也用了Lua,你可以在实验室页面找到它的全部源代码)。
- C#:
- //...
- ///
- /// Lua虚拟机
- ///
- private static Lua luaVM = null;
- ///
- /// 宠物的构造函数
- ///
- public Pet(PetForm _petForm, string _petName, string _petPath)
- {
- petState = new PetState();
- petForm = _petForm;
- petName = _petName;
- //构造Lua虚拟机以解析宠物AI
- luaVM = new Lua();
- //注册提供给宠物AI的API函数
- Type tThis = this.GetType();
- luaVM.RegisterFunction("PetDo", this, tThis.GetMethod("LuaPetDo"));
- luaVM.RegisterFunction("PetDoFrame", this, tThis.GetMethod("LuaPetDoFrame"));
- luaVM.RegisterFunction("Sleep", this, tThis.GetMethod("LuaSleep"));
- //载入AI文件
- luaVM.DoFile(System.AppDomain.CurrentDomain.BaseDirectory + _petPath + "\\ai.lua");
- }
其中RegisterFunction作用是注册C#代码中的一个public(***版本的LuaInterface支持private)函数来供Lua脚本使用,其中无需关心参数的个数以及类型。
- Lua:
- PetDo("Sleep");
执行DoFile后会调用Lua脚本,后者则调用C#中的PetDo函数完成指定动作。
小结:Lua在游戏开发中应用教程的内容介绍完了,希望通过本文的学习能对你有所帮助!
分享名称:Lua在游戏开发中应用教程
网站地址:http://www.shufengxianlan.com/qtweb/news29/527029.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联