解析Lua脚本语言入门代码

Lua脚本语言入门代码是本文要介绍的内容,主要是来学习Lua脚本语言,具体内容来看本文通过代码如何来
首页 新闻资讯 行业资讯 解析Lua脚本语言入门代码

Lua脚本语言入门代码是本文要介绍的内容,主要是来学习Lua脚本语言。近来游戏基本做的差不多了,大约5月底左右可以内测?现在正在快马加鞭增强其脚本功能。考虑到效率和库大小,功能等原因,暂决定使用<魔兽世界>采用的Lua语言进行嵌入支持.我可爱的Python和Ruby没被采用,怨念啊...下面是学习的一些代码,均在LuaEdit5.0上运行通过.

复制

--> 实验类型   print( type("HelloWorld") );  print( type(10.4 * 3) );  print( type(print) );  print( type(type) );  print( type(true) );  print( type(nil) );  print( type(type(x)) );   print("-------------------------------")  --> 实现同一变量对应多种类型   print( type(a) )  a = 10 print( type(a) )  a = "a string!!" print( type(a) )  a = print a( type(a) )   print("-------------------------------")  --> 实现字符串部分替代保存和部分特殊转义符   a = "My game is \n\"\'so\bso good" ;  b = string.gsub( a, "ga", "ha" );  print( a );  print( b );   print("-------------------------------")  --> 实现Asc码和字符之间的替换表示   print("\097\102a")    ;  print("100" + 2 * "5" ) ;   print("-------------------------------")  --> 用于测试字符串链接,数字自动转换字符串   print("Hello".."World");  sString = [[  你好,现在是在测试大段的String类型,  将使用这两个符号进行表示  测试希望能够顺利结束.      ]];  print( sString );   print( 10 .. 20 );   line = 100 n = tonumber(line)  if ( n == nil )  then error("您输入的值" .. line .. "无法正常转换为浮点数!")  else print( n^2 )  end   print( 10 == "10" )  print( tostring(10) == "10" )   print("-------------------------------")  --> 不等于符是 ~=   不再是 !=   if( a ~= nil )  then print(a)  else print(" a为空 ")  end   print("-------------------------------")  --> == 号是进行两个变量的地址进行比较,所以2例中的a和c是不相等的   a = 1;  b = a;  c = 1;  if( a == b )  then print( "a=b" )  else print( "a~=b" )  end   if( a == c )  then print( "a=c" )  else print( "a~=c" )  end   a = {};  a.x = 1;  a.y = 2;   b = {};  b = a;   c = {};  c.x = 1;  c.y = 2;   if( a == b )  then print( "a=b" )  else print( "a~=b" )  end   if( a == c )  then print( "a=c" )  else print( "a~=c" )  end   print("-------------------------------")   print( 2 < 5 )  --> print( a < b )       --> Lua不会自动将char转换为int  --> print( a < 1 )  print( "2" + 1 < 2 )  --> print( "3" < 2 )     --> 不合法  print( "3" > "2" )       --> 合法   print("-------------------------------")  --[[  * 逻辑运算符认为false和nil是假,0和其他一切都为true  * and 和 or 的预算结果不再是true或false,Lua中,它类似于一个三元运算符  * a and b   若a为false,则返回a,否则返回b  * a or b    若a为true,则返回a,否则返回b  --]]   print( 4 and 5 )  print( nil and 13 )  print( false and 13 )  print( 4 or 5 )  print( false or 5 )   --[[  *    实用技巧: 若a为空值则将b赋给a  *              aa = a or b  *    另外,and 的优先级比 or 高.  *    not 的结果只有true或false  --]]   print( not 0 )           --> 注意,0也是true  print( not false )  print( not nil )  print( not true )  print( not hahahaha )    --> hahahaha变量未赋值,认为是nil  print( not not true )  a = "hahahaha" print( not not a )  if( a == "hahahaha" )  then print(" a还是\"hahahaha\" ");  else print(" a已经是true ");  end  print("-------------------------------")  --> 表的使用   a = { 1, 3, 6, 0 }  print( a[2] );         --> 注意,结果是3,说明Lua表索引是以1开始的,不是C/C++一样以0开始   print("-------------------------------")  --> 表是动态的,允许顺时进行修改   w = { x = 0, y = 0, label = "呵呵" }  x = {}  w[1] = "嘿嘿"  x.f = w print(w[1])  print(x[1])  print(x.f[1])   print("-------------------------------")  --> function函数   function Fun( a, b )  local c = a^2 + b^2 ;  return math.sqrt(c)  end   print( Fun( 3, 4 ))   ;   print("-------------------------------")  --> Loops循环,从第一个参数到第二个参数,第三个参数是步长,中间以逗号分割   for i = 1,5,2  do   print("现在的I值是" .. i )  end   print("-------------------------------")  --> Loops循环+Conditionals条件   for i = 1,6  do if i < 3          then print("数字很小")        elseif i < 5            then print("数字一般")             else print("数字比较大")  end  end  --[[  *    Lua不近然ObjectPascal,没必要每个begin对应一个end  *    即使多个if,也是一个end就足够  --]]  print("-------------------------------")   myData = { 2 }  myData[0] = "111"  myData["yumen"] = "duzhi"   for key,value in myData  do print( key .. "=" .. value )  end  --[[  *    Lua允许以字符串做为下标,这点十分类似STL中的map映射  *  --]]  print("-------------------------------")   --> 嵌套Table 以及 两种访问模式  myTable = { color = "blue", sex = 1, x = 0;      { x = 1, y = 2 }, { x = 2, y = 3 } ,      { x = 3, y = 4 }, { x = 4, y = 5 }       }  print( myTable.color );  print( myTable["color"]) ;  print( myTable[1].x );   print("-------------------------------")   --> 支持不定参数  function Fun( ... )  for i = 1, arg.n     do print( arg[i] )  end  end   Fun("1", "2", dhsag, 1, nil, true )  --[[  *    传来的参数自动的存放在了一个名为 arg 的Table中了  *    其中arg.n就是arg中存放参数的个数  --]]   print("-------------------------------")   --> 以table表做参数  function Fun( t )  for k,v in t        do print( k .. "=" .. v )  end  end   Fun({ x = 10, y = 20 });  Fun{ x = 10, y = 20 };  --[[  *    虽然仅仅是调用单个Table做为参数  * 调用处不加小括号也可以,但是不支持这种写法.可读性低.  --]]   print("-------------------------------")
  • 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.

  • 147.

  • 148.

  • 149.

  • 150.

  • 151.

  • 152.

  • 153.

  • 154.

  • 155.

  • 156.

  • 157.

  • 158.

  • 159.

  • 160.

  • 161.

  • 162.

  • 163.

  • 164.

  • 165.

  • 166.

  • 167.

  • 168.

  • 169.

  • 170.

  • 171.

  • 172.

  • 173.

  • 174.

  • 175.

  • 176.

  • 177.

  • 178.

  • 179.

  • 180.

  • 181.

  • 182.

  • 183.

  • 184.

  • 185.

  • 186.

  • 187.

  • 188.

  • 189.

  • 190.

  • 191.

  • 192.

  • 193.

  • 194.

  • 195.

  • 196.

  • 197.

  • 198.

  • 199.

  • 200.

  • 201.

  • 202.

  • 203.

  • 204.

  • 205.

  • 206.

  • 207.

  • 208.

  • 209.

  • 210.

  • 211.

  • 212.

  • 213.

  • 214.

  • 215.

  • 216.

  • 217.

  • 218.

  • 219.

  • 220.

  • 221.

  • 222.

  • 223.

  • 224.

  • 225.

  • 226.

  • 227.

  • 228.

  • 229.

  • 230.

  • 231.

  • 232.

  • 233.

  • 234.

  • 235.

  • 236.

  • 237.

  • 238.

  • 239.

  • 240.

  • 241.

  • 242.

  • 243.

  • 244.

  • 245.

  • 246.

  • 247.

  • 248.

  • 249.

  • 250.

小结:解析Lua脚本语言入门代码的内容介绍完了,希望通过本文的学习能对你有所帮助!

23    2011-08-22 18:00:53    Lua 语言