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

简介:

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

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

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

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

 

 

 

 

 
 
  1. -- mac 上有很多文本编辑器,Himi找了很多,感觉TextMate是比较好用的,小巧且功能强大!而且免费,图标是个小菊花 - - 
  2. -- 注释语句 
  3.   
  4. --[[   
  5. 注释段落语句 
  6.   ]]-- 
  7.   
  8. --引用其他lua文件,不需要加上(.lua)后缀 
  9. --require "xx" 
  10.   
  11. --变量不需要定义,可以直接赋值 
  12. count = 100  --成员变量 
  13. local count =100  --局部变量 
  14.   
  15. --方法定义 
  16. function hello(...) 
  17.     --打印 
  18.     print("Hello Lua!"); 
  19.     print(string.format(...)) 
  20. end 
  21.   
  22. -- 每一行代码不需要使用分隔符,当然也可以加上 
  23. -- 访问没有初始化的变量,lua默认返回nil 
  24.   
  25. -- 调用函数形式 
  26. hello("你懂的"
  27.   
  28. --打印变量的类型 
  29. isOK =false 
  30. print(type(isOK)) 
  31.   
  32. -- 基本变量类型 
  33. a =nil --Lua 中值为nil 相当于删除 
  34. b =10 
  35. c =10.4 
  36. d =false 
  37. --定义字符串,单引号,双引号都可以的 
  38. e ="i am" 
  39. d ='himi' 
  40.   
  41. --两个字符串的连接可以如下形式 
  42. stringA ="Hi" 
  43. stringB ="mi" 
  44. print(stringA..stringB) 
  45.   
  46. --另外Lua也支持转移字符,如下 
  47. print(stringA.."\n"..stringB); 
  48.   
  49. --修改字符串的部分gsub,可以如下形式:(将stringA字符串中的Hi修改为WT) 
  50. stringA=string.gsub(stringA,"Hi","WT"
  51. print(stringA); 
  52.   
  53. --将字符换成数字tonumber(不转也会自动转) 
  54. --将数字换成字符tostring(不转也会自动转) 
  55. stringC = "100" 
  56. stringC = tonumber(stringC) 
  57. stringC = stringC +20 
  58. stringC = tostring(stringC) 
  59. print(stringC) 
  60.   
  61. --取一个字符串的长度使用 # 
  62. print(#stringC) 
  63.   
  64. --创建 表 
  65. tableA ={} 
  66. m = "x" 
  67. tableA[m] =100 
  68. m2 ='y' 
  69. tableA[m2] =200 
  70. print(tableA["x"].."\n"..tableA.y) 
  71. --另外表还可以如下形式(从1开始) 
  72. tableB ={"4","5","6","7","8"
  73. print(tableB[1]) 
  74.   
  75. --算术操作符 
  76. c1 = 10+2 
  77. c2 = 10-2 
  78. c3 = 10*2 
  79. c4 = 10/2 
  80. c5 = 10^2 
  81. c6 = 10%2 
  82. c7 = -10+2 
  83. print(c1.."_"..c2.."_"..c3.."_"..c4.."_"..c5.."_"..c6.."_"..c7) 
  84.   
  85. --控制操作 
  86. --if then elseif then else end 
  87. abc =10 
  88. if  abc ==10 then 
  89.     print("v1"
  90. elseif abc == 9 then 
  91.     print("v2"
  92. else 
  93.     print("v3"
  94. end 
  95.   
  96. --for 
  97. --从4(第一个参数)涨到10(第二个参数),每次增长以2(第三个参数)为单位 
  98. for i=4,10,2 do 
  99.     print("for1:"..i+1) 
  100. end 
  101. --也可以不制定最后一个参数,默认1的增长速度 
  102. for i=4,10 do 
  103.     print("for2:"..i+1) 
  104. end 
  105.   
  106. tableFor = {"himi1","himi2","himi3","himi4","himi5"
  107. for k,v in pairs(tableFor) do 
  108.     print("for3:key:"..k.."value:"..v) 
  109. end 
  110.   
  111. --while 
  112. w1 = 20 
  113. while true do 
  114.     w1=w1+1 
  115.     if w1 ==25 then 
  116.         break 
  117.     end 
  118. end 
  119. print("whlile:"..w1) 
  120.   
  121. --repeat 
  122.     aa =20 
  123.     repeat aa = aa+2 
  124.         print("repeat:"..aa) 
  125.     until aa>28 
  126.   
  127. --关系操作符 
  128. --需要注意的是不等于符号 ~=  而不是!= 
  129. ax =10 
  130. bx =20 
  131.   
  132. if ax >bx then 
  133.     print("GX1"
  134. elseif ax<bx then 
  135.     print("GX2"
  136. elseif ax>=bx then 
  137.     print("GX3"
  138. elseif ax<=bx then 
  139.     print("GX4"
  140. elseif ax==bx then 
  141.     print("GX5"
  142. elseif ax~=bx then 
  143.     print("GX6"
  144. else 
  145.     print("GX7"
  146. end 

 其中主要需要注意的是判断语句不等于,不再是!= ,在Lua中是~= ,这个要注意。

源码下载地址: http://vdisk.weibo.com/s/wwgnO

 

另外关于一些常见的函数如下详解:

 

 
 
  1. --函数详解 
  2.   
  3. --有一个返回值的函数 
  4. function funTestBackOne(aCount) 
  5.     local aCount= aCount+1 
  6.     return aCount 
  7. end 
  8.   
  9. a =20 
  10. print(funTestBackOne(a)) 
  11.   
  12. --有多个返回值的函数 
  13. function funTestBackMore() 
  14.     return 2,3 
  15. end 
  16.   
  17. a,b =funTestBackMore() 
  18. print(a.." and "..b) 
  19.   
  20. --有变长参数的函数 
  21. function funTestUnKnow( ... ) 
  22.     print(...) 
  23. end 
  24. funTestUnKnow(a,b,"Himi"
  25.   
  26. --闭合函数(一个函数写在另外一个函数内) 
  27. function funTest1( ... ) 
  28.     local d = 12; 
  29.     d=d+... 
  30.     function funTest2( ... ) 
  31.         print(d) 
  32.     end 
  33.     funTest2() 
  34. end 
  35.   
  36. funTest1(100) 

掌握这些Lua语言基础,基本足够你使用了。





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/1173219,如需转载请自行联系原作者
目录
相关文章
|
15天前
|
NoSQL JavaScript Java
Lua开发环境搭建和基础语法
Lua开发环境搭建和基础语法
|
Linux
linux(CentOS)基础命令大全
1.关机 (系统的关机、重启以及登出 ) 的命令shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间...
2266 0
|
存储 缓存 自然语言处理
小刚带你深入浅出理解Lua语言
前言这篇文章并不是针对某个知识点深入剖析,而是聚焦在Lua语言的关键知识点覆盖和关键使用问题列举描述。能够让学习者对Lua整体有个认识(使用一门新的语言不仅仅在用的时候适应它,而是知道怎么善于使用它),同时也可以作为一个工具文档在Lua中遇到具体问题的时候能从这里索引到相应的知识点和Lua的一些原理,得到启发。 1、Lua语言的特点简单的说Lua语言是一个可扩展的嵌入型的脚本语言。它具有以下的特点
小刚带你深入浅出理解Lua语言
|
数据采集 Web App开发 存储
基于Apify+node+react/vue搭建一个有点意思的爬虫平台
熟悉我的朋友可能会知道,我一向是不写热点的。为什么不写呢?是因为我不关注热点吗?其实也不是。有些事件我还是很关注的,也确实有不少想法和观点。 但我一直奉行一个原则,就是:要做有生命力的内容。
517 0
|
程序员 C++ 开发者
《Lua游戏开发实践指南》一2.2Lua简介
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第2章 ,第2.2节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2803 0
|
程序员 C++ 开发者
《Lua游戏开发实践指南》一1.3为什么使用Lua
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第1章 ,第1.3节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2294 0

热门文章

最新文章