C编程语言嵌入Lua的用法
当你希望在你的游戏开始的时候读取一些信息,以配置你的游戏,这些信息通常都是放到一个文本文件中,在你的游戏启动的时候,你需要打开这个文件,然后解析字符串,找到所需要的信息。
应用于“配置”这个目的,Lua提供给你更为强大,也更为灵活的表达方式,在上一种方式中,你无法根据某些条件来配置你的游戏,Lua提供给你灵活的表达方式,你可以类似于这样来配置你的游戏:
- if player:is_dead() then
- do_something()
- else
- do_else()
- end
更为重要的是,在你做了一些修改之后,完全不需要重新编译你的游戏代码。
通常,在游戏中你并不需要一个单独的解释器,你需要在游戏来运行解释器,下面,让我们来看看,如何在你的代码中运行解释器:
- //这是lua所需的三个头文件
- //当然,你需要链接到正确的lib
- extern "C"
- {
- #include "lua.h"
- #include "lauxlib.h"
- #include "lualib.h"
- }
- int main(int argc, char *argv[])
- {
- lua_State *L = lua_open();
- // 此处记住,当你使用的是5.1版本以上的Lua时,请修改以下两句为luaL_openlibs(L);
- luaopen_base(L);
- luaopen_io(L);
- const char *buf = "print('hello, world!')";
- // 记住,当你使用的是5.1版本以上的Lua时请使用luaL_dostring(L,buf);
- lua_dostring(buf);
- lua_close(L);
- return 0;
- }
程序输出:hello, world!
有时你需要执行一段字符串,有时你可能需要执行一个文件,当你需要执行一个文件时,你可以这么做:
lua_dofile(L, "test.lua");
看,非常简单吧。
取得信息