注册忘记密码

自学论坛

自学图文推荐

热门推荐:Win10Win8Win7/XPPS技术教程大全New资讯
查看: 2771|回复: 55

lua基本应用

[复制链接]

24

主题

43

帖子

130

积分

注册会员

Rank: 2Rank: 2

积分
130
发表于 2015-3-22 12:33:43 | 显示全部楼层 |阅读模式
游戏中的界面都是用LUA来写,这个和WOW是一模一样的,嗯,以后再慢慢研究.年终了,保存下先.
  lua语言规则:
  1. lua_State *L = lua_open(); //建立一个LUA状态机

  2.   luaopen_base(L); // 启动它

  3.   const char *buf = "print('hello, world!')";
  4.   lua_dostring(buf); //把buf写入到lua中并执行

  5.   lua_close(L); // 关闭L

  6.   lua_pushstring(L, "var"); //将变量的名字放入栈]

  7.   lua_getglobal(L, "var"); //变量的值现在栈顶

  8.   int var = lua_tonumber(L, -1); //取得栈顶的元素

  9.   lua_tostring( ls, -1 ); //取得栈顶的的元素, 一般用于参数传递

  10.   lua_pushstring( ls, s_szPlayer ); //把某个字符串元素压入栈中,可用于参数传出

  11.   lua_pushnumber(L, 200); //把某个数字元素压入栈中,

  12.   lua_register(L, "foo", foo);

  13. //把自己在C++中编写的函数foo拿到lua中注册,这样在lua脚本中就可以调用这个函数
复制代码
 在Lua中,函数等同于变量,所以你可以这样来取得这个函数:
  1. a_getglobal(L, "main");//函数现在栈顶
复制代码
 现在,我们可以调用这个函数,并传递给它正确的参数:
  1. lua_pushnumber(L, 100); //将参数压栈

  2.   lua_pcall(L, 1, 1, 0); //调用函数,有一个参数,一个返回值
  3.   //返回值现在栈顶

  4.   int result = lua_tonumber(L, -1);
复制代码

例子:
  1. #include "lua.h"
  2.   #include "lauxlib.h"
  3.   #include "lualib.h"
  4.   int foo(lua_State *L)
  5.   {
  6.   //首先取出脚本执行这个函数时压入栈的参数
  7.   //假设这个函数提供一个参数,有两个返回值
  8.   //get the first parameter

  9.   const char *par = lua_tostring(L, -1);
  10.   printf("%s\n", par);
  11.   //push the first result

  12.   lua_pushnumber(L, 100);
  13.   //push the second result

  14.   lua_pushnumber(L, 200);
  15.   //return 2 result

  16.   return 2;
  17.   }
  18.   int main(int argc, char *argv[]){
  19.   lua_State *L = lua_open();
  20.   luaopen_base(L);
  21.   luaopen_io(L);
  22.   lua_register(L, "foo", foo);
  23.   const char *buf = "r1, r2 = foo("hello") print(r1..r2)";
  24.   lua_dostring(L, buf);
  25.   lua_close(L);
  26.   return 0;
  27.   }
复制代码



回复

使用道具 举报

0

主题

14

帖子

54

积分

注册会员

Rank: 2Rank: 2

积分
54
发表于 2015-5-17 13:16:24 | 显示全部楼层
说的非常好
回复 支持 反对

使用道具 举报

0

主题

14

帖子

54

积分

注册会员

Rank: 2Rank: 2

积分
54
发表于 2015-5-17 13:18:53 | 显示全部楼层
自学论坛一直都很好
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-17 13:39:04 | 显示全部楼层
顶顶多好
回复 支持 反对

使用道具 举报

0

主题

17

帖子

55

积分

注册会员

Rank: 2Rank: 2

积分
55
发表于 2015-5-17 13:47:24 | 显示全部楼层
我经常来自学社区
回复 支持 反对

使用道具 举报

0

主题

17

帖子

55

积分

注册会员

Rank: 2Rank: 2

积分
55
发表于 2015-5-17 14:18:34 | 显示全部楼层
难得一见的好帖
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-18 08:27:01 | 显示全部楼层
有自考内容没啊
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-18 08:38:49 | 显示全部楼层
有自学自考内容吗?
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-18 08:54:36 | 显示全部楼层
自学论坛zixuebbs.com好记啊
回复 支持 反对

使用道具 举报

0

主题

15

帖子

51

积分

注册会员

Rank: 2Rank: 2

积分
51
发表于 2015-5-18 09:01:19 | 显示全部楼层
难得一见的好帖
回复 支持 反对

使用道具 举报

0

主题

15

帖子

51

积分

注册会员

Rank: 2Rank: 2

积分
51
发表于 2015-5-18 09:03:54 | 显示全部楼层
顶顶多好
回复 支持 反对

使用道具 举报

0

主题

18

帖子

56

积分

注册会员

Rank: 2Rank: 2

积分
56
发表于 2015-5-18 09:20:56 | 显示全部楼层
自学论坛一直都很好
回复 支持 反对

使用道具 举报

0

主题

16

帖子

58

积分

注册会员

Rank: 2Rank: 2

积分
58
发表于 2015-5-18 09:27:05 | 显示全部楼层
好帖子,赞一个,支持楼主
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-18 09:27:30 | 显示全部楼层
好帖就是要顶
回复 支持 反对

使用道具 举报

0

主题

18

帖子

56

积分

注册会员

Rank: 2Rank: 2

积分
56
发表于 2015-5-18 09:43:28 | 显示全部楼层
说的非常好
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-18 09:51:30 | 显示全部楼层
我经常来自学社区
回复 支持 反对

使用道具 举报

0

主题

18

帖子

56

积分

注册会员

Rank: 2Rank: 2

积分
56
发表于 2015-5-18 09:53:03 | 显示全部楼层
难得一见的好帖
回复 支持 反对

使用道具 举报

0

主题

17

帖子

53

积分

注册会员

Rank: 2Rank: 2

积分
53
发表于 2015-5-18 10:41:11 | 显示全部楼层
楼主是超人
回复 支持 反对

使用道具 举报

0

主题

19

帖子

69

积分

注册会员

Rank: 2Rank: 2

积分
69
发表于 2015-5-18 10:55:13 | 显示全部楼层
不错不错
回复 支持 反对

使用道具 举报

0

主题

18

帖子

56

积分

注册会员

Rank: 2Rank: 2

积分
56
发表于 2015-5-18 11:02:46 | 显示全部楼层
我经常来自学社区
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

快速回复 返回顶部 返回列表