Lua在游戏开发中应用教程

移动开发 iOS 游戏开发
Lua在游戏开发中应用是本文要介绍的内容,主要是来了解并学习lua中游戏的开发,具体内容的实现,来看本文详解。

Lua游戏开发中应用是本文要介绍的内容,主要是来了解并学习lua游戏的开发,具体内容的实现,来看本文详解。

前些日子一直忙于开发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. /// <summary> 
  5. /// Lua虚拟机  
  6. /// </summary> 
  7. private static Lua luaVM = null;  
  8.    
  9. /// <summary> 
  10. /// 宠物的构造函数  
  11. /// </summary> 
  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游戏开发中应用教程的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-24 13:27:07

Lua 游戏C接口脚本

2011-08-25 17:01:50

LUA网游游戏

2011-08-24 14:26:08

Lua游戏脚本

2011-08-31 17:58:00

VS.netLUA开发环境

2011-07-18 11:07:12

iPhone 游戏 引擎

2011-07-18 10:53:09

2011-07-18 11:39:58

iPhone 游戏 引擎

2011-07-18 11:23:29

iPhone 游戏 动画

2011-07-18 12:29:10

2011-08-24 11:14:25

LUA 游戏

2011-08-24 15:22:09

2010-03-08 19:03:23

Python脚本

2011-08-15 13:44:07

iPhone开发UITableView

2012-06-23 20:06:21

jQuery

2013-12-13 17:33:22

Lua对象管理

2011-08-23 16:37:05

Lua数学库

2014-04-23 13:30:23

类簇iOS开发

2009-12-29 14:58:31

WPF优点

2019-04-09 15:02:36

OpenResty腾讯游戏营销技术

2011-08-22 18:08:09

Lua脚本
点赞
收藏

51CTO技术栈公众号