天天看點

【COCOS2DX-LUA 腳本開發之二】LUA語言基礎

從今天開始,往後将陸續更新Lua教程,主要是搭載Cocos2dx ,有任何疑惑或者不對的地方,盡情指正、交流、探讨。

那麼首先肯定是Lua語言基礎的知識點,下面直接附上代碼,注釋已經很清楚,無需贅述。

這裡順便給大家推薦一款mac os上的文本編輯器,好用支援多語言編輯,oc,c,c++,java,lua,js,html等等等

-- 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") 

--for 

--從4(第一個參數)漲到10(第二個參數),每次增長以2(第三個參數)為機關 

for i=4,10,2 do 

    print("for1:"..i+1) 

--也可以不制定最後一個參數,預設1的增長速度 

for i=4,10 do 

    print("for2:"..i+1) 

tableFor = {"himi1","himi2","himi3","himi4","himi5"} 

for k,v in pairs(tableFor) do 

    print("for3:key:"..k.."value:"..v) 

--while 

w1 = 20 

while true do 

    w1=w1+1 

    if w1 ==25 then 

        break 

    end 

print("whlile:"..w1) 

--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") 

    print("GX7") 

 其中主要需要注意的是,判斷語句不等于,不再是!= ,在Lua中是~= ,這個要注意。

另外關于一些常見的函數如下詳解:

--函數詳解 

--有一個傳回值的函數 

function funTestBackOne(aCount) 

    local aCount= aCount+1 

    return aCount 

a =20 

print(funTestBackOne(a)) 

--有多個傳回值的函數 

function funTestBackMore() 

    return 2,3 

a,b =funTestBackMore() 

print(a.." and "..b) 

--有變長參數的函數 

function funTestUnKnow( ... ) 

    print(...) 

funTestUnKnow(a,b,"Himi") 

--閉合函數(一個函數寫在另外一個函數内) 

function funTest1( ... ) 

    local d = 12; 

    d=d+... 

    function funTest2( ... ) 

        print(d) 

    funTest2() 

funTest1(100) 

掌握這些Lua語言基礎,基本足夠你使用了。

本文轉自 xiaominghimi 51CTO部落格,原文連結:http://blog.51cto.com/xiaominghimi/1173219,如需轉載請自行聯系原作者

繼續閱讀