【COCOS2DX-LUA 脚本开发之二】LUA语言基础

转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/lua1/1235.html 

          ☞ 点击订阅 ☜
 本博客最新动态!及时将最新博文通知您!


                 

从今天开始,往后将陆续更新Lua教程,主要是搭载Cocos2dx ,有任何疑惑或者不对的地方,尽情指正、交流、探讨。

那么首先肯定是Lua语言基础的知识点,下面直接附上代码,注释已经很清楚,无需赘述。

这里顺便给大家推荐一款mac os上的文本编辑器,好用支持多语言编辑,oc,c,c++,java,lua,js,html等等等

TextMate,图标是个菊花 – -。   下载地址:http://macromates.com

 

【COCOS2DX-LUA 脚本开发之二】LUA语言基础_第1张图片

 

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
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语言基础,基本足够你使用了。

你可能感兴趣的:(【COCOS2DX-LUA 脚本开发之二】LUA语言基础)