偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Lua在游戲開發(fā)中應(yīng)用教程

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

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

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

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

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

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

  1. C#:  
  2.  
  3. //...  
  4. /// <summary> 
  5. /// Lua虛擬機(jī)  
  6. /// </summary> 
  7. private static Lua luaVM = null;  
  8.    
  9. /// <summary> 
  10. /// 寵物的構(gòu)造函數(shù)  
  11. /// </summary> 
  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.     //注冊提供給寵物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#代碼中的一個public(***版本的LuaInterface支持private)函數(shù)來供Lua腳本使用,其中無需關(guān)心參數(shù)的個數(shù)以及類型。

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

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

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

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-24 13:27:07

Lua 游戲C接口腳本

2011-08-25 17:01:50

LUA網(wǎng)游游戲

2011-08-24 14:26:08

Lua游戲腳本

2011-07-18 12:29:10

2011-07-18 11:23:29

iPhone 游戲 動畫

2011-07-18 11:39:58

iPhone 游戲 引擎

2011-07-18 10:53:09

2011-07-18 11:07:12

iPhone 游戲 引擎

2011-08-31 17:58:00

VS.netLUA開發(fā)環(huán)境

2011-08-24 11:14:25

LUA 游戲

2010-03-08 19:03:23

Python腳本

2011-08-15 13:44:07

iPhone開發(fā)UITableView

2011-08-24 15:22:09

2012-06-23 20:06:21

jQuery

2009-12-29 14:58:31

WPF優(yōu)點(diǎn)

2014-04-23 13:30:23

類簇iOS開發(fā)

2013-12-13 17:33:22

Lua對象管理

2019-04-09 15:02:36

OpenResty騰訊游戲營銷技術(shù)

2011-08-23 16:37:05

Lua數(shù)學(xué)庫

2011-07-08 14:58:16

iPhone Xcode iOS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號