日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Lua在游戲開(kāi)發(fā)中應(yīng)用教程

Lua游戲開(kāi)發(fā)中應(yīng)用是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)lua游戲的開(kāi)發(fā),具體內(nèi)容的實(shí)現(xiàn),來(lái)看本文詳解。

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供昌江黎族企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為昌江黎族眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

前些日子一直忙于開(kāi)發(fā)BigTank項(xiàng)目(下載地址參見(jiàn)劣質(zhì)設(shè)計(jì)網(wǎng)站:http://www.buaa-mstc.com,不支持IE),總結(jié)了一些Lua在C#項(xiàng)目中的應(yīng)用方法。

Lua 是一個(gè)小巧的腳本語(yǔ)言。作者是巴西人。該語(yǔ)言的設(shè)計(jì)目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴(kuò)展和定制功能。它的主頁(yè)是 www.lua.org。
Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過(guò)來(lái)調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴(kuò)展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和維護(hù)。

在C#中使用Lua也十分簡(jiǎn)單。

 
 
 
  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網(wǎng)站上可以下載到這個(gè)庫(kù)。在你的項(xiàng)目中引用LuaInterface.dll后就可以開(kāi)始了。

BigTank項(xiàng)目還沒(méi)有確定是否要開(kāi)源,所以我拿自己寫(xiě)的電子寵物程序演示一下(它也用了Lua,你可以在實(shí)驗(yàn)室頁(yè)面找到它的全部源代碼)。

 
 
 
  1. C#:  
  2.  
  3. //...  
  4. ///  
  5. /// Lua虛擬機(jī)  
  6. ///  
  7. private static Lua luaVM = null;  
  8.    
  9. ///  
  10. /// 寵物的構(gòu)造函數(shù)  
  11. ///  
  12. public Pet(PetForm _petForm, string _petName, string _petPath)  
  13. {  
  14.     petState = new PetState();  
  15.     petForm = _petForm;  
  16.     petName = _petName;  
  17.    
  18.     //構(gòu)造Lua虛擬機(jī)以解析寵物AI  
  19.     luaVM = new Lua();  
  20.     //注冊(cè)提供給寵物AI的API函數(shù)  
  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è)C#代碼中的一個(gè)public(***版本的LuaInterface支持private)函數(shù)來(lái)供Lua腳本使用,其中無(wú)需關(guān)心參數(shù)的個(gè)數(shù)以及類(lèi)型。

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

執(zhí)行DoFile后會(huì)調(diào)用Lua腳本,后者則調(diào)用C#中的PetDo函數(shù)完成指定動(dòng)作。

小結(jié):Lua游戲開(kāi)發(fā)中應(yīng)用教程的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!


名稱(chēng)欄目:Lua在游戲開(kāi)發(fā)中應(yīng)用教程
分享地址:http://www.5511xx.com/article/dpgocde.html