梦幻DUO的游戏开发之路

“学者们都是很单纯的,如果他们不单纯的话,戏剧般的灵感就不会造访他们了。” ——东野圭吾...

排序:
默认
按更新时间
按访问量

浅谈对Lua的看法

本着Lua简单易用的想法来学Lua,没想到这Lua是一点都不简单啊! 众人流传的Lua脚本简单,也只是停留在使用Lua脚本的层面上而已。事实上设计Lua脚本却并非易事,Lua语言设计的原则是小巧,所以甚至很多东西都没有语言层次上的实现,例如数组、类、迭代器这些在大多数语言中很常见的东西,在Lua...

2016-08-12 10:06:54

阅读数:1544

评论数:0

Lua 迭代器和一般for

迭代器通过closure函数,可以创建一个持有非local变量(相当于C++的static)的函数,所以可用该函数来持有一个迭代器,每当调用该函数时返回下一个迭代值。示例:function values (t) local i = 0 return function () i = ...

2016-08-02 18:28:41

阅读数:359

评论数:0

Lua 在Lua中调用C函数

首先能够被Lua调用的C函数要满足如下声明://c typedef int (*lua_CFunction) (lua_State *L);例如: 由于Lua有局部栈,所以参数在栈中的位置永远是1开始。并且函数返回后会自动清理栈。//c static int l_sin (lua_State *...

2016-01-28 17:11:33

阅读数:361

评论数:0

Lua 在C程序中调用Lua函数

调用Lua函数的步骤为: 获得函数并压入栈 按顺序压入参数 调用lua_pcall,该函数的第二个参数是参数个数,第三个参数是返回个数,第四个参数是异常处理函数 示例程序://c /* call a function 'f' defined in Lua */ double...

2016-01-28 16:10:53

阅读数:615

评论数:0

Lua 在C程序中进行Lua表操作

为了表示RGB颜色,假设在C程序中需要用三个0~255数字,在Lua由于是实数就用0~1表示。在lua中你可以用一个表来写:--lua background = {r=0.30, g=0.10, b=0}你也就可以这样使用预定义颜色:--lua BLUE = {r=0, g=0, b=1.0} &...

2016-01-28 15:18:51

阅读数:848

评论数:0

Lua 配置文件示例

void load (lua_State *L, const char *fname, int *w, int *h) { if (luaL_loadfile(L, fname) || lua_pcall(L, 0, 0, 0)) error(L, "cannot run con...

2016-01-27 21:54:39

阅读数:651

评论数:0

Lua 从C程序获得Lua变量值

无论你何时想要从Lua 请求一个值(比如一个全局变量的值),调用Lua,被请求的值将会被压入栈。无论你何时想要传递一个值给Lua,首先将这个值压入栈,然后调用Lua(这个值将被弹出)。 Lua 以一个严格的LIFO 规则(后进先出;也就是说,始终存取栈顶)来操作栈。当你调用Lua 时,它只会改变...

2016-01-27 21:12:50

阅读数:979

评论数:0

Lua 简单Lua解释器源码分析

#include <stdio.h> #include <string.h> #include "lua.h" #include "lauxlib.h" #include "lualib.h" int main (...

2016-01-27 18:47:57

阅读数:1441

评论数:0

lua 编译、执行和错误

一、编译 1. loadfile 只编译文件,不运行。 2. dofile 编译文件并运行。function dofile (filename) local f = assert(loadfile(filename)) return f() end load(5.1以上改为loadstri...

2016-01-27 11:12:07

阅读数:243

评论数:0

Lua 迭代器

7.1 Iterators and ClosuresIn Lua, we typically represent iterators by functions: each time we call the function, it returns the “next” element from t...

2016-01-27 10:17:41

阅读数:259

评论数:0

Lua 关于函数的更多内容

一、匿名函数 Lua中的函数其实都是匿名函数,我们定义函数的时候:function foo (x) return 2*x end等价于foo = function (x) return 2*x end这里foo只是保存匿名函数的变量。1.lua的函数是一种 First-Class Value 的...

2016-01-23 23:51:33

阅读数:276

评论数:0

Lua 函数

Lua中的函数参数如果是string或表构造器,则圆括号可以忽略掉。print "Hello World" <--> print("Hello World") dofile 'a.lua' <--&...

2016-01-20 09:52:06

阅读数:332

评论数:0

Lua 语句

Lua的语句支持赋值、控制结构、程序调用、多重赋值和局部变量声明。一. 赋值 跟C语言等编程语言一样的语法,不再多说。二. 多重赋值 下面这段代码分别给a赋值10,给b赋值20a, b = 10, 20 因为多重赋值是先取值后赋值,通过多重赋值可以方便地实现交换值:x, y = y, x当要赋...

2016-01-18 13:32:30

阅读数:550

评论数:0

Lua 表达式

算术操作符 Lua中的常用算术操作符有:+、-、*、/、^、%和-(符号)。%是取余数,结果跟第二个操作数符号一致。关系操作符 Lua中的关系操作符有:<、>、<=、>=、==和~=(不等符号) 次序比较操作符(<、>、<=、>=)只能用于数字...

2016-01-13 21:32:58

阅读数:461

评论数:0

Lua 类型和值

Lua是动态类型语言,它有如下的类型:nil, boolean, number, string, userdata, function, thread, 和 table。 type函数用于输出类型名:print(type("Hello world")) --> stri...

2016-01-13 19:29:27

阅读数:560

评论数:0

Lua 独立解释器

在命令行运行Lua脚本的参数的格式是这样的: lua [options] [script [args]]-e 编辑(edit)参数可以直接在命令行参数输入语句:% lua -e "print(math.sin(12))" --> -0.53657291800043-i是...

2016-01-12 15:51:46

阅读数:1210

评论数:0

Lua 全局变量

Lua的变量无需先声明(定义)才能使用,如果你要使用某个变量,直接使用就可以了。 未赋值的变量的值是nil。print(b) --> nil b = 10 print(b) --> 10如果你将一个变量手动赋值为nil,则会对该变量进行内存回收。b = nil print(b) --...

2016-01-12 15:15:25

阅读数:710

评论数:0

Lua 命名规范

Lua和C一样,支持字符、下划线和数字(数字不能在开头)。 除此之外,lua有些特殊的要求,如:下划线后面不能接一个或多个大写单词,这是lua有特殊用途的。 下面这些是lua保留的关键字,也不能使用: and break do else elseif end false goto f...

2016-01-12 15:09:53

阅读数:2088

评论数:0

Lua chunk(程序块)

Lua里面一条语句或一块语句称之为chunk(程序块)。 Lua无需;语句结束符,但是你可以加上去。多条语句可以写在同一行而不加;,但是加上;会更清晰。示例:a = 1 b = a*2 a = 1; b = a*2; a = 1; b = a*2 a = 1 b = a*2 -- ugly, b...

2016-01-12 14:53:33

阅读数:1274

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭