从今天开始,往后将陆续更新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
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
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
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语言基础,基本足够你使用了。