Lua在游戏开发中应用教程

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也十分简单。

 
 
 
  1. LuaInterface is a library for integration between the Lua language and Microsoft   
  2. .NET platform’s Common Language Runtime (CLR). Lua scripts can use it to instantiate CLR objects,   
  3. access properties, call methods, and even handle events with Lua functions. 

从LuaInterface网站上可以下载到这个库。在你的项目中引用LuaInterface.dll后就可以开始了。

BigTank项目还没有确定是否要开源,所以我拿自己写的电子宠物程序演示一下(它也用了Lua,你可以在实验室页面找到它的全部源代码)。

 
 
 
  1. C#:  
  2.  
  3. //...  
  4. ///  
  5. /// Lua虚拟机  
  6. ///  
  7. private static Lua luaVM = null;  
  8.    
  9. ///  
  10. /// 宠物的构造函数  
  11. ///  
  12. public Pet(PetForm _petForm, string _petName, string _petPath)  
  13. {  
  14.     petState = new PetState();  
  15.     petForm = _petForm;  
  16.     petName = _petName;  
  17.    
  18.     //构造Lua虚拟机以解析宠物AI  
  19.     luaVM = new Lua();  
  20.     //注册提供给宠物AI的API函数  
  21.     Type tThis = this.GetType();  
  22.     luaVM.RegisterFunction("PetDo", this, tThis.GetMethod("LuaPetDo"));  
  23.     luaVM.RegisterFunction("PetDoFrame", this, tThis.GetMethod("LuaPetDoFrame"));  
  24.     luaVM.RegisterFunction("Sleep", this, tThis.GetMethod("LuaSleep"));  
  25.     //载入AI文件  
  26.     luaVM.DoFile(System.AppDomain.CurrentDomain.BaseDirectory + _petPath + "\\ai.lua");  

其中RegisterFunction作用是注册C#代码中的一个public(***版本的LuaInterface支持private)函数来供Lua脚本使用,其中无需关心参数的个数以及类型。

 
 
 
  1. Lua:  
  2. PetDo("Sleep"); 

执行DoFile后会调用Lua脚本,后者则调用C#中的PetDo函数完成指定动作。

小结:Lua游戏开发中应用教程的内容介绍完了,希望通过本文的学习能对你有所帮助!

分享名称:Lua在游戏开发中应用教程
网站地址:http://www.shufengxianlan.com/qtweb/news29/527029.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联