摘要:json.encode将表格数据编码为 JSON 字符串。格式:jsonString = json.encode(表格对象)用法示例:local str = json.encode({a=1,b="ss",c={c1=1,c2=2},d={10,11},100})echo(str) -- {"a":1,"b":"ss","c":{"c1":1,"c2":2},"d":[10,11],"1":100}local str
阅读全文
随笔分类 - lua
摘要:table.keys返回指定表格中的所有键。格式:keys = table.keys(表格对象)用法示例:local t = {a = 1, b = 2, c = 3}local keys = table.keys(t)-- keys = {"a", "b", "c"}~~table.values返回指定表格中的所有值。格式:values = table.values(表格对象)用法示例:local t = {a = "1", b = "2", c = "3"}local v
阅读全文
摘要:table.nums计算表格包含的字段数量。格式:count = table.nums(表格对象)Lua 的“#”操作可以取得表格的长度,但仅限从 1 开始连续数字为索引的表格。table.nums() 可以计算任何表格的长度。
阅读全文
摘要:io.pathinfo拆分一个路径字符串,返回组成路径的各个部分。格式:parts = io.pathinfo(路径)使用示例:local pathinfo = io.pathinfo("/var/app/test/abc.png") -- pathinfo.dirname = "/var/app/test/"-- pathinfo.filename = "abc.png"-- pathinfo.basename = "abc"-- pathinfo.extname = ".png"
阅读全文
摘要:io.exists测试文件是否存在,如果存在返回 true。格式:result = io.exists(路径)可以使用 CCFileUtils:fullPathForFilename() 函数查找特定文件的完整路径,例如:local path = CCFileUtils:sharedFileUtils():fullPathForFilename("gamedata.txt")if io.exists(path) then ....end
阅读全文
摘要:handler将 Lua 对象及其方法包装为一个匿名函数。格式:函数 = handler(对象, 对象.方法)在 quick-cocos2d-x 中,许多功能需要传入一个 Lua 函数做参数,然后在特定事件发生时就会调用传入的函数。例如触摸事件、帧事件等等。local MyScene = class("MyScene", function() return display.newScene("MyScene")end) function MyScene:ctor() self.frameTimeCount = 0 -- 注册帧事件 self:schedu
阅读全文
摘要:class() 高级用法class() 除了定义纯 Lua 类之外,还可以从 C++ 对象继承类。比如需要创建一个工具栏,并在添加按钮时自动排列已有的按钮,那么我们可以使用如下的代码:-- 从 CCNode 对象派生 Toolbar 类,该类具有 CCNode 的所有属性和行为local Toolbar = class("Toolbar", function() return display.newNode() -- 返回一个 CCNode 对象end) -- 构造函数function Toolbar:ctor() self.buttons = {} -- 用一个 tabl
阅读全文
摘要:clone深度克隆一个值。格式:value = clone(值)用法示例:-- 下面的代码,t2 是 t1 的引用,修改 t2 的属性时,t1 的内容也会发生变化local t1 = {a = 1, b = 2}local t2 = t1t2.b = 3 -- t1 = {a = 1, b = 3} <-- t1.b 发生变化 -- clone() 返回 t1 的副本,修改 t2 不会影响 t1local t1 = {a = 1, b = 2}local t2 = clone(t1)t2.b = 3 -- t1 = {a = 1, b = 2} <-- t1.b 不受影响
阅读全文
摘要:--local MainSceneConfig = require "res.scripts.configs.MainSceneConfig" -- 暂时添加一个临时配置文件--require "res.scripts.scenes.MainScene"-- 加载事件OnLoadingStart = "OnLoadingStart";OnLoadingProcess = "OnLoadingProcess";OnLoadingEnd = "OnLoadingEnd";-- 加载类型SOUNDTY
阅读全文
摘要:local tonumber_ = tonumberfunction tonumber(v, base) return tonumber_(v, base) or 0endfunction toint(v) return math.round(tonumber(v))endfunction tobool(v) return (v ~= nil and v ~= false)endfunction totable(v) if type(v) ~= "table" then v = {} end return vendfunction clone(object) ...
阅读全文
摘要:---- Author: My Name-- Date: 2013-12-16 18:52:11-- csv解析 -- -- 去掉字符串左空白 local function trim_left(s) return string.gsub(s, "^%s+", ""); end -- 去掉字符串右空白 local function trim_right(s) return string.gsub(s, "%s+$", ""); end -- 解析一行 local function parseline(line) lo
阅读全文
摘要:只要是新的聊天对象就创建一个新的listview local name = tolua.cast(UIHelper:seekWidgetByName(self.nameItem, "name"), "Label"); local playerName = name:getStringValue(); if nil == self.privateChatList[name:getTag()] then local ChatListView = ListView:create(); if ChatListView == nil then ...
阅读全文
摘要:Lua的函数参数是和位置相关的,调用时实参会按顺序依次传给形参。有时候用名字指定参数是很有用的,比如rename函数用来给一个文件重命名,有时候我们我们记不清命名前后两个参数的顺序了:-- invalid coderename(old="temp.lua", new="temp1.lua")上面这段代码是无效的,Lua可以通过将所有的参数放在一个表中,把表作为函数的唯一参数来实现上面这段伪代码的功能。因为Lua语法支持函数调用时实参可以是表的构造。rename{old="temp.lua", new="temp1.lua&q
阅读全文
摘要:Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(...)表示函数有可变的参数。Lua将函数的参数放在一个叫arg的表中,除了参数以外,arg表中还有一个域n表示参数的个数。例如,我们可以重写print函数:printResult = ""function print(...) for i,v in ipairs(arg) do printResult = printResult .. tostring(v) .. "\t" end printResult = printResult .. "\n"end有时候我
阅读全文
摘要:5.1 多返回值Lua函数可以返回多个结果值,比如string.find,其返回匹配串“开始和结束的下标”(如果不存在匹配串返回nil)。s, e = string.find("hello Lua users", "Lua")print(s, e) --> 7 9Lua函数中,在return后列出要返回的值得列表即可返回多值,如:function maximum (a) local mi = 1 -- maximum index local m = a[mi] -- maximum value for i,val in ipairs(a) do i
阅读全文
摘要:3.6 表的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}Lua将"Sunday"初始化days[1](第一个元素索引为1),用"Monday"初始化days[2].
阅读全文
摘要:.. --两个点字符串连接,如果操作数为数字,Lua将数字转成字符串。print("Hello " .. "World") --> Hello Worldprint(0 .. 1) --> 01
阅读全文
摘要:and or not逻辑运算符认为false和nil是假(false),其他为真,0也是true.and和or的运算结果不是true和false,而是和它的两个操作数相关。a and b -- 如果a为false,则返回a,否则返回ba or b -- 如果a为true,则返回a,否则返回b例如:print(4 and 5) --> 5print(nil and 13) --> nilprint(false and 13) --> falseprint(4 or 5) --> 4print(false or 5) --> 5一个很实用的技巧:如果x为false或者
阅读全文
摘要:= == ~=这些操作符返回结果为false或者true;==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等。Lua通过引用比较tables、userdata、functions。也就是说当且仅当两者表示同一个对象时相等。a = {}; a.x = 1; a.y = 0b = {}; b.x = 1; b.y = 0c = aa==c but a~=bLua比较数字按传统的数字大小进行,比较字符串按字母的顺序进行,但是字母顺序依赖于本地环境。当比较不同类型的值的时候要特别注意:"0" == 0 -- false2 < 15 -- true
阅读全文
摘要:二元运算符:+ - * / ^ (加减乘除幂)一元运算符:- (负值)这些运算符的操作数都是实数。
阅读全文

浙公网安备 33010602011771号