Lua基础语法-1
2015-01-14 10:15
861 查看
关于冒号: 1、 定义的时候: Class:test()与
Class.test(self)是等价的 ,点号(.)要达到冒号(:)的效果要加一个self参数到第一个参数;
2: 所有的语言,都要用到变量。在Lua中,不管在什么地方使用变量,都不需要声明
string:
1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...
2. string库中所有的function都不会直接操作字符串,而是返回一个结果string.byte(string [,pos]):返回第pos个字符的整数表示形式.如a为97.
string.char(i1,i2...):i1,i2为整型,将i1,i2..等转化为对应的字符然后连接成字符串,并返回.如i1=97则返回a.
string.dump(functoin):返回一个参数函数的2进制代码.(疑问)
string.find(s,pattern [,init [,plain]]):查找pattern在s中的位置,返回pattern在s中的开始位置和结束位置.init是开始查找的位置.plain未知.
string.len(s):返回字符串的长度.
string.lower(s):变小写.
string.upper(s):变大写.
string.rep(s,n):将s拷贝n份,并连接起来,返回.
string.sub(s,i [,j]):取s中从i开始到j为止的自字符串.默认j为长度.-i表示倒数.
s = "[abc]"
string.len(s) <==返回5
string.rep("abc", 2) <==返回"abcabc"
string.lower("ABC") <==返回"abc"
string.upper("abc") <==返回"ABC"
string.sub(s, 2) <==返回"abc]"
string.sub(s, -2) <==返回"c]"
string.sub(s, 2, -2) <==返回"abc"
string.format(fmt, ...)返回一个类似printf的格式化字符串
---------
为什么会有 quick
那
quick 与 cocos2d-x 相比到底有什么区别,又有什么加强呢?
cocos2d-x 是一个用 C++ 开发的游戏引擎,其架构设计和 API 基本上是照搬的 cocos2d-iphone(一个用 Objective-C 的 iOS 游戏开发引擎)。
由于 C++ 对开发人员要求较高,所以网龙科技利用 tolua++ 这个工具,将 cocos2d-x 的 C++ 接口转为了 Lua 接口(这种将 C++ 接口导出为 Lua 接口的库通常称为 luabinding)。让开发者可以使用 Lua 这种简单易懂的脚本语言来编写游戏,从而大大提高开发效率。
*************************************************************************
package.path = package.path .. ";src/"
cc.FileUtils:getInstance():setPopupNotify(false)
-- cc.FileUtils:getInstance():getFileFullName();
-- require("app.MyApp").new():run()
-- print("12235444")
--[[
a = {1,2,3};
b = a
print(a == b)
-- if (a == nil) {print(1); print(2) }
-- if a != nil then print(a) end
-- print(4 and 5)
print("This a " .. "string." )
print("lua" .. "is a "); print(" laguage ")
---- for
-- for i=1,10 do
-- print("hello" .. i) -- ;
-- end
-- -- function complier
-- function add( a, b)
-- return a+b;
-- end
-- print("the resault of fun :" add(3,5));
]]
----********table
--[[ a = 1250;
-- print("a: " a);
_table = {100,20,8,9};
table.insert(_table, 10, 2000);
-- table.foreachi(_table, print);
for i=1,4 do
print(_table[i])
end
table.sort( _table )
for i,v in ipairs(_table) do
print(i,v)
end
]]
--[[ B = {5, 1,2, name = "Li Ming", ["age"] = 25};
print(#B)
]]
--[[ A = 10;
print("as" .. A) -- it is true
if 4 > 5 then
local A = 20 -- local to the then body
print(A);
elseif 4 < 4 then --> syntax
print(A) --> 10 (the global one)
elseif A == 10 then
print("A=== resault")
end
]]
--[[ --ipairs
_test = {[33] = "name", [10] = "age", [3] = "ok", ["cuo"] = "please"}
for i,v in ipairs(_test) do
print("ipairs" .. " " .. i,v)
-- end -->所以, 当调用ipairs的时候, 在线性数组中遇到第一个nil时便停止遍历, 不管后面还是否有值, 这点在遍历的时候要格外注意
--在 ipairs(tabFiles) 遍历中,当key=1时候value就是nil,所以直接跳出循环不输出任何值。
for k,v in pairs(_test) do
print("pairs" .. " " .. k,v)
end
]]
// table的数组部分存储 : key从一开始并且连续的部分
function _test( )
a = {10, name = "please", [2] = 11};
return a;
end
--[[
_test();
print(table.getn(a)); -- 长度都是值得 数组空间的长度
print("#a" .. #a); -- [3] to 1
]]
local d = _test(); -- 作用域 本文件有用 不在语句块中
a.k = 1;
table.insert();
table.remove(d, 3);
for i,v in ipairs(d) do -- d为啥还可以使用?
print(" " .. i,v)
end
--[[
function add( )
AA = 10; --全局变量 不是局部变了 (前提: 要调用)
local D = 50; -- 函数调用结束就消失
end
add() -- 因为为调用。所以 AA 是nil
print("AA" .. " " .. AA)
]]
--[[
-- function
function add ( a , b )
return a+b;
end
print(add(10,60)
]]
1:Quick框架中的display文件,里面放的是与显示相关的部分接口
2:比如我们想要新建一个精灵,我们会调用display.newSprite
2:类似的接口还有display.newLayer。基本的格式都是display.newXXX,"XXX"包括sprite、layer、node、scene等,详细的可以查看display文件。
3:在Quick中使用图片有个规则,如果使用的图片是以#开头的话表示是从SpriteFrameCache中读取,如果没有使用#开头的话表示是直接从文件读取。
打开Player.lua文件,添加以下内容:
local Player = class("Player", function() -- ?
local sprite = display.newSprite("#player1-1-1.png")
return sprite
end)
function Player:ctor()
end
return Player
4:在Quick中创建一个类很简单,廖大已经给我们留好了一个class方法,只需要使用这个方法就能轻松的创建一个类。我们来看下具体的创建方式: 首先第一句:
打开Quick的functions.lua文件,里面有class方法的具体实现
5:现在,我们知道了显示层级、触摸区域,那么要让任何 CCNode 都可以接受触摸事件就变得很简单了:
package.path = package.path .. ";src/"
cc.FileUtils:getInstance():setPopupNotify(false)
-- cc.FileUtils:getInstance():getFileFullName();
-- require("app.MyApp").new():run()
-- print("12235444")
--[[
a = {1,2,3};
b = a
print(a == b)
-- if (a == nil) {print(1); print(2) }
-- if a != nil then print(a) end
-- print(4 and 5)
print("This a " .. "string." )
print("lua" .. "is a "); print(" laguage ")
---- for
-- for i=1,10 do
-- print("hello" .. i) -- ;
-- end
-- -- function complier
-- function add( a, b)
-- return a+b;
-- end
-- print("the resault of fun :" add(3,5));
]]
----********table
--[[ a = 1250;
-- print("a: " a);
_table = {100,20,8,9};
table.insert(_table, 10, 2000);
-- table.foreachi(_table, print);
for i=1,4 do
print(_table[i])
end
table.sort( _table )
for i,v in ipairs(_table) do
print(i,v)
end
]]
--[[ B = {5, 1,2, name = "Li Ming", ["age"] = 25};
print(#B)
]]
--[[ A = 10;
print("as" .. A) -- it is true
if 4 > 5 then
local A = 20 -- local to the then body
print(A);
elseif 4 < 4 then --> syntax
print(A) --> 10 (the global one)
elseif A == 10 then
print("A=== resault")
end
]]
--[[ --ipairs
_test = {[33] = "name", [10] = "age", [3] = "ok", ["cuo"] = "please"}
for i,v in ipairs(_test) do
print("ipairs" .. " " .. i,v)
-- end -->所以, 当调用ipairs的时候, 在线性数组中遇到第一个nil时便停止遍历, 不管后面还是否有值, 这点在遍历的时候要格外注意
--在 ipairs(tabFiles) 遍历中,当key=1时候value就是nil,所以直接跳出循环不输出任何值。
for k,v in pairs(_test) do
print("pairs" .. " " .. k,v)
end
]]
function _test( )
a = {10, name = "please", [2] = 11};
return a;
end
--[[
_test();
print(table.getn(a)); -- 长度都是值得 数组空间的长度
print("#a" .. #a); -- [3] to 1
]]
local d = _test(); -- 作用域 本文件有用 不在语句块中
a.k = 1;
table.insert();
table.remove(d, 3);
for i,v in ipairs(d) do -- d为啥还可以使用?
print(" " .. i,v)
end
--[[
function add( )
AA = 10; --全局变量 不是局部变了 (前提: 要调用)
local D = 50; -- 函数调用结束就消失
end
add() -- 因为为调用。所以 AA 是nil
print("AA" .. " " .. AA)
]]
--[[
-- function
function add ( a , b )
return a+b;
end
print(add(10,60)
]]
相关文章推荐
- Lua脚本之语法基础快速入门
- lua中的特殊语法,较基础
- Lua脚本之语法基础快速入门
- Lua基础之语法
- Lua脚本之语法基础快速入门
- 笔记: Lua基础: 特殊的程序语法
- lua基础语法
- Cocos2d-x 3.0- 脚本编程-Lua语法基础
- Lua基础语法
- <1>Lua 环境搭建与语法基础
- lua学习之入门(二)----基础语法1
- Lua基础(二):表达式及基本语法
- 第二篇:Lua基础语法,以及实例讲解
- Cocos2d-x 3.0final 终结者系列教程19脚本编程-Lua语法基础
- Lua脚本之基础语法
- Learning Lua Programming (2) Lua基础语法示例
- lua 基础语法(一)
- Lua脚本之语法基础快速入门
- Lua简明入门实践(从"基"搞起)_(二)Lua基础语法
- Lua基础之语法