本站文章均为
李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/lua-game/1235.html
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/lua-game/1235.html
从今天开始,往后将陆续更新Lua教程,主要是搭载Cocos2dx ,有任何疑惑或者不对的地方,尽情指正、交流、探讨。
那么首先肯定是Lua语言基础的知识点,下面直接附上代码,注释已经很清楚,无需赘述。
这里顺便给大家推荐一款mac os上的文本编辑器,好用支持多语言编辑,oc,c,c++,java,lua,js,html等等等
TextMate,图标是个菊花 – -。 下载地址:http://macromates.com
1
|
<
a
href
=
"http://www.himigame.com/wp-content/uploads/2013/04/QQ20130406-1@2x.png"
>
<
img
alt
=
"QQ20130406-1@2x"
src
=
"http://www.himigame.com/wp-content/uploads/2013/04/QQ20130406-1@2x.png"
width
=
"1292"
height
=
"907"
/
>
<
/
a
>
|
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是比较好用的,小巧且功能强大!而且免费
,图标是个小菊花
-
-
--
注释语句
--
[
[
注释段落语句
]
]
--
--引用其他
lua文件
,不需要加上(
.
lua)后缀
--
require
"xx"
--变量不需要定义,可以直接赋值
count
=
100
--成员变量
local
count
=
100
--局部变量
--方法定义
function
hello
(
.
.
.
)
--打印
print
(
"Hello Lua!"
)
;
print
(
string
.
format
(
.
.
.
)
)
end
--
每一行代码不需要使用分隔符,当然也可以加上
--
访问没有初始化的变量,
lua默认返回
nil
--
调用函数形式
hello
(
"你懂的"
)
--打印变量的类型
isOK
=
false
print
(
type
(
isOK
)
)
--
基本变量类型
a
=
nil
--
Lua
中值为
nil
相当于删除
b
=
10
c
=
10.4
d
=
false
--定义字符串,单引号,双引号都可以的
e
=
"i am"
d
=
'himi'
--两个字符串的连接可以如下形式
stringA
=
"Hi"
stringB
=
"mi"
print
(
stringA
.
.
stringB
)
--另外
Lua也支持转移字符,如下
print
(
stringA
.
.
"\n"
.
.
stringB
)
;
--修改字符串的部分
gsub,可以如下形式
:
(将
stringA字符串中的
Hi修改为
WT
)
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
m2
=
'y'
tableA
[
m2
]
=
200
print
(
tableA
[
"x"
]
.
.
"\n"
.
.
tableA
.
y
)
--另外表还可以如下形式(从
1开始)
tableB
=
{
"4"
,
"5"
,
"6"
,
"7"
,
"8"
}
print
(
tableB
[
1
]
)
--算术操作符
c1
=
10
+
2
c2
=
10
-
2
c3
=
10
*
2
c4
=
10
/
2
c5
=
10
^
2
c6
=
10
%
2
c7
=
-
10
+
2
print
(
c1
.
.
"_"
.
.
c2
.
.
"_"
.
.
c3
.
.
"_"
.
.
c4
.
.
"_"
.
.
c5
.
.
"_"
.
.
c6
.
.
"_"
.
.
c7
)
--控制操作
--
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
w1
=
20
while
true
do
w1
=
w1
+
1
if
w1
==
25
then
break
end
end
print
(
"whlile:"
.
.
w1
)
--
repeat
aa
=
20
repeat
aa
=
aa
+
2
print
(
"repeat:"
.
.
aa
)
until
aa
&
gt
;
28
--关系操作符
--需要注意的是不等于符号
~
=
而不是
!=
ax
=
10
bx
=
20
if
ax
&
gt
;
bx
then
print
(
"GX1"
)
elseif
ax
&
lt
;
bx
then
print
(
"GX2"
)
elseif
ax
&
gt
;
=
bx
then
print
(
"GX3"
)
elseif
ax
&
lt
;
=
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
funTest1
(
.
.
.
)
local
d
=
12
;
d
=
d
+
.
.
.
function
funTest2
(
.
.
.
)
print
(
d
)
end
funTest2
(
)
end
funTest1
(
100
)
|
掌握这些Lua语言基础,基本足够你使用了。