LuaScript - Init Lua

来源:互联网 发布:重庆大数据公司 编辑:程序博客网 时间:2024/06/05 16:58

我最近学习游戏脚本编程。接触到的第一个脚本编程语言就是Lua。我使用的Lua版本是5.1。遗憾的是,我学习脚本编程的那本书中使用的版本是老版本的Lua,由于Lua在新版本中,对很多函数调用作了改变,我发现根据书中的介绍,很难成功地编译程序。经过自己的研究,终于可以正常地使用Lua提供的基本功能了。所以我把我的解决方法写出,和大家分享,希望对其他使用新版本Lua遇到麻烦的朋友有所帮助。

 

下载安装好Lua后,就可以使用了。我使用Visual Studio .NET 2003的C++编译器开发应用Lua脚本的Host应用程序。首先,我们要设置编译器,让它能够找到使用Lua必须的头文件和库文件。方法如下:

 

1. 启动Visual Studio .NET 2003。

 

2. 选择“工具”-〉“选项”菜单,打开“选项”对话框。

 

3. 在右边的选项中,选择“项目”,然后选择其下的“VC++目录”。

 

4. 在对话框右边的“显示以下内容的目录”下拉框中选择“包含文件”。然后添加Lua的包含目录,在我的电脑中目录是“C:/Program Files/Lua/5.1/Include”。

 

5. 在对话框右边的“显示以下内容的目录”下拉框中选择“库文件”。然后添加Lua使用的库文件所在目录,我的是“C:/Program Files/Lua/5.1/Lib”。

 

6. 点击“确定”,关闭对话框。

 

现在,编译器已经设置完毕。我们就以一个Console控制台程序来演示Lua的初始化:

 

1. 创建一个C++控制台项目。

 

2. 选择“项目”-〉“属性”菜单,打开项目的属性对话框,然后选择“连接器”下面的“命令行”选项,然后在右下角区域输入使用的库文件lua51.lib和lua5.1.lib。然后点击“确定”。

 

3. 为了使用Lua中的函数,我们需要在程序的源代码文件中包含Lua的头文件——lua.h和lauxlib.h。因为Lua使用纯C代码编写,所以我们要用下面的方式来包含这两个头文件到我们的C++程序中:

 

extern "C"

{

#include "lua.h"

#include "lauxlib.h" // 必须包含这个头文件,否则无法调用lua_open()函数

}

 

要使用Lua,首先要对它初始化。初始化一个Lua,个人的理解,其实就是初始化一个Lua使用的堆栈,主程序和游戏脚本通过这个堆栈互相通讯。我们只要在主程序的Main()函数中调用如下代码即可初始化一个Lua堆栈:

 

int _tmain(int argc, _TCHAR* argv[])
{
 // 初始化一个Lua state并设置堆栈尺寸是1024
 lua_State* pLuaState = lua_open(1024);

 

return 0;

}

 

使用完Lua后,应该调用如下代码释放掉Lua对象:

 

lua_close(pLuaState);

 

完整的程序如下:

 

int _tmain(int argc, _TCHAR* argv[])
{
 // 初始化一个Lua state并设置堆栈尺寸是1024
 lua_State* pLuaState = lua_open(1024);

 

// ... 所有的程序逻辑代码在这里写

 

// 释放Lua state

lua_close(pLuaState); 

 

return 0;

}

 

OK,就这么简单。下次我再告诉大家如何使用Lua的一些基本功能。谢谢!


原创粉丝点击