从今天开始,往后将陆续更新Lua教程,主要是搭载Cocos2dx ,有任何疑惑或者不对的地方,尽情指正、交流、探讨。
那么首先肯定是Lua语言基础的知识点,下面直接附上代码,注释已经很清楚,无需赘述。
这里顺便给大家推荐一款mac os上的文本编辑器,好用支持多语言编辑,oc,c,c++,java,lua,js,html等等等
TextMate,图标是个菊花 – -。 下载地址:http://macromates.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@H_502_50@
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
@H_502_272@
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
-- mac 上有很多文本编辑器,Himi找了很多,感觉TextMate是比较好用的,小巧且功能强大!而且免费,图标是个小菊花 - -
-- 注释语句
--[[
注释段落语句
]]
--
--require "xx"
--变量不需要定义,可以直接赋值
count
=
100
--成员变量
local
count
=
100
--局部变量
--方法定义
function hello
(
...
)
--打印
print
(
"Hello Lua!"
)
;
print
(
string
.format
(
...
)
)
end
-- 访问没有初始化的变量,lua默认返回nil
hello
(
"你懂的"
)
--打印变量的类型
isOK
=
false
print
(
type
(
isOK
)
)
-- 基本变量类型
b
=
10
c
=
10.4
d
=
false
--定义字符串,单引号,双引号都可以的
e
=
"i am"
d
=
'himi'
--两个字符串的连接可以如下形式
stringA
=
"Hi"
stringB
=
"mi"
print
(
stringA..stringB
)
--另外Lua也支持转移字符,如下
print
(
stringA..
"\n"
..stringB
)
;
stringA
=
string
.gsub
(
stringA
,
"Hi"
,
"WT"
)
print
(
stringA
)
;
--将字符换成数字tonumber(不转也会自动转)
--将数字换成字符tostring(不转也会自动转)
stringC
=
"100"
stringC
=
tonumber
(
stringC
)
stringC
=
stringC
+
20
stringC
=
tostring
(
stringC
)
print
(
stringC
)
--取一个字符串的长度使用 #
print
(
#stringC)
--创建 表
tableA
=
{
}
m
=
"x"
tableA[m]
=
100
m
2
=
'y'
tableA[m
2
]
=
200
print
(
tableA[
"x"
]..
"\n"
..tableA.y
)
--另外表还可以如下形式(从1开始)
tableB
=
{
"4"
,
"5"
,
"6"
,
"7"
,
"8"
}
print
(
tableB[
1
]
)
--算术操作符
c
1
=
10
+
2
c
2
=
10
-2
c
3
=
10
*
2
c
4
=
10
/
2
c
5
=
10
^
2
c
6
=
10
%
2
c
7
=
-10
+
2
print
(
c
1.
.
"_"
..c
2.
.
"_"
..c
3.
.
"_"
..c
4.
.
"_"
..c
5.
.
"_"
..c
6.
.
"_"
..c
7
)
--控制操作
--if then elseif then else end
abc
=
10
if
abc
=
=
10
then
print
(
"v1"
)
elseif abc
=
=
9
then
print
(
"v2"
)
else
print
(
"v3"
)
end
--for
--从4(第一个参数)涨到10(第二个参数),每次增长以2(第三个参数)为单位
for
i
=
4
,
10
,
2
do
print
(
"for1:"
..i
+
1
)
end
--也可以不制定最后一个参数,默认1的增长速度
for
i
=
4
,
10
do
print
(
"for2:"
..i
+
1
)
end
tableFor
=
{
"himi1"
,
"himi2"
,
"himi3"
,
"himi4"
,
"himi5"
}
for
k
,
v
in
pairs
(
tableFor
)
do
print
(
"for3:key:"
..k..
"value:"
..v
)
end
--while
w
1
=
20
while
true
do
w
1
=
w
1
+
1
if
w
1
=
=
25
then
break
end
end
print
(
"whlile:"
..w
1
)
--repeat
aa
=
20
repeat
aa
=
aa
+
2
print
(
"repeat:"
..aa
)
until aa
>
28
--关系操作符
--需要注意的是不等于符号 ~= 而不是!=
ax
=
10
bx
=
20
if
ax
>
bx
then
print
(
"GX1"
)
elseif ax
<
bx
then
print
(
"GX2"
)
elseif ax
>
=
bx
then
print
(
"GX3"
)
elseif ax
<
=
bx
then
print
(
"GX4"
)
elseif ax
=
=
bx
then
print
(
"GX5"
)
elseif ax~
=
bx
then
print
(
"GX6"
)
else
print
(
"GX7"
)
end
|
其中主要需要注意的是,判断语句不等于,不再是!= ,在Lua中是~= ,这个要注意。
源码下载地址:http://vdisk.weibo.com/s/wwgnO
另外关于一些常见的函数如下详解:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@H_502_50@
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
--函数详解
--有一个返回值的函数
function funTestBackOne
(
aCount
)
local
aCount
=
aCount
+
1
return
aCount
end
a
=
20
print
(
funTestBackOne
(
a
)
)
--有多个返回值的函数
function funTestBackMore
(
)
return
2
,
3
end
a
,
b
=
funTestBackMore
(
)
print
(
a..
" and "
..b
)
--有变长参数的函数
function funTestUnKnow
(
...
)
print
(
...
)
end
funTestUnKnow
(
a
,
b
,
"Himi"
)
function funTest
1
(
...
)
local
d
=
12
;
d
=
d
+
...
function funTest
2
(
...
)
print
(
d
)
end
funTest
2
(
)
end
funTest
1
(
100
)
|
掌握这些Lua语言基础,基本足够你使用了。