自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

Lua 是一個小巧的腳本語言。作者是巴西人。該語言的設(shè)計目的是為了嵌入應(yīng)用程序中,從而為應(yīng)用程序提供靈活的擴展和定制功能。它的主頁是 www.lua.org。
Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過來調(diào)用C/C++的函數(shù),這使得Lua在應(yīng)用程序中可以被廣泛應(yīng)用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替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網(wǎng)站上可以下載到這個庫。在你的項目中引用LuaInterface.dll后就可以開始了。

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

  1. C#:  
  2.  
  3. //...  
  4. /// <summary> 
  5. /// Lua虛擬機  
  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虛擬機以解析寵物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-08-31 17:58:00

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

2011-07-18 11:07:12

iPhone 游戲 引擎

2011-07-18 10:53:09

2011-07-18 12:29:10

2011-07-18 11:23:29

iPhone 游戲 動畫

2011-07-18 11:39:58

iPhone 游戲 引擎

2011-08-24 11:14:25

LUA 游戲

2010-03-08 19:03:23

Python腳本

2011-08-24 15:22:09

2011-08-15 13:44:07

iPhone開發(fā)UITableView

2012-06-23 20:06:21

jQuery

2013-12-13 17:33:22

Lua對象管理

2011-08-23 16:37:05

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

2009-12-29 14:58:31

WPF優(yōu)點

2014-04-23 13:30:23

類簇iOS開發(fā)

2019-04-09 15:02:36

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

2011-08-22 18:08:09

Lua腳本
點贊
收藏

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