Lua
yinhe888675
这个作者很懒,什么都没留下…
展开
-
Cocos2dx Android工程物理返回键失效问题
最近在对接Cocos工程,遇到了一个小问题,物理返回键点击不起作用,没办法只能自己查原因了。首先看了下页面继承的Cocos2dxActivity,以为它屏蔽了onBackPressed/onKeyDown,但未发现其重写。后来发现其实cocos的页面是空值surfaceview完成页面渲染等工作,怀疑是其屏蔽了onKeyDown找到lib/Cocos2dxGLSurfaceView.java的onKeyDown,然后添加代码 return false; 就可以解除拦截了 @Override转载 2022-04-27 12:03:52 · 306 阅读 · 0 评论 -
cocos2d_lua图片加密及读取
读取加密后的图片暂时没有想到更好的办法,只好修改了CCImage.cpp的源文件去判断图片是否加密,如果加密了,首先对其解密,再生成CCImage对象// 首先包含xxtea的头文件,xxtea在cocos2dx已包含,无需单独提供,只需要正确引入即可#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include "xxtea/xxtea.h"#else#include "external/xxtea/xxtea.h"#endifbool Im原创 2021-12-29 10:39:16 · 573 阅读 · 0 评论 -
不用第三个变量交换两个数值
1、加减法local a,b = 5,10a = a + b -- a = 15b = a - b -- b = 15 - 10 = 5a = a - b -- a = 15 - 5 =102、异或法local a,b = 5,10a = a ^ b b = a ^ ba = a ^ b3、乘除法local a,b = 5,10a = a * bb = a / ba = a / b --(b不为0)原创 2021-10-15 09:29:18 · 96 阅读 · 0 评论 -
Lua实现面向对象
Human = {name = "",age = 0}function Human:new(obj,name,age) obj = obj or {} setmetatable(obj,self) --设置元表 self.__index = self self.name = name or "人类" self.age = age or 0 return objendfunction Human:printInfo() print(self.name,self.age)end原创 2021-10-15 09:23:01 · 2128 阅读 · 0 评论 -
lua实现链表
题目: 用lua 完成链表的基本操作 1. 建表 2. 尾部插入 3. 头部插入 4. 删除结点(与输入值相同的结点) 5. 遍历要求实现: ls1:Creat() ls1:pushback() ls1:pushhead() ls2:Creat() ls2:pushback()其中,ls1和l原创 2021-01-17 10:30:55 · 937 阅读 · 0 评论 -
Lua中__index和__newindex生成只读table
function readOnly(t) local proxy = {} local mt = { __index = t, __newindex = function (t,k,v) -- body end } setmetatable(proxy, mt) return proxyendday = readOnly({"Sundy","adlfjalkdj"})print(day[1原创 2021-01-07 17:33:22 · 164 阅读 · 0 评论 -
Lua中的元表与元方法
前言Lua中每个值都可具有元表。 元表是普通的Lua表,定义了原始值在某些特定操作下的行为。你可通过在值的原表中设置特定的字段来改变作用于该值的操作的某些行为特征。例如,当数字值作为加法的操作数时,Lua检查其元表中的"__add"字段是否有个函数。如果有,Lua调用它执行加法。我们称元表中的键为事件(event),称值为元方法(metamethod)。前述例子中的事件是"add",元方法是执行加法的函数。可通过函数getmetatable查询任何值的元表。在table中,我可以重新定义的元方法有转载 2021-01-07 16:11:48 · 136 阅读 · 0 评论 -
Lua尾调用
所谓尾调用,就是一个函数返回另一个函数的返回值,类似于goto语句,如下: function fun() -- body return fun1() end调用fun1()后,fun()中不在执行任何代码,所以不需要保存fun()的调用栈信息,Lua做了这样的优化,称为"尾调用消除,尾调用不需要使用栈空间,因此尾调用递归的层次可以无限制的,不会导致栈溢出。 --当n的值过大时就会导致栈溢出 local function fun2(n) if n == 0 the.原创 2021-01-05 16:39:34 · 480 阅读 · 0 评论 -
Lua中的select函数用法
Lua中用…表示函数的可变参数,如 function fun1( ... ) local tab = {...} -- 把可变参数存入到table表中 for k,v in pairs(tab) do print(k,v) end endLua中的select方法,用法:select(index,…)index 类型:整型,从1开始,表示起点(可变参数),…表示可变参数select(index,…)返回从起点index到结束的可变参数;原创 2021-01-05 13:51:37 · 3497 阅读 · 0 评论 -
Lua中的值传递和引用传递
老规矩,直接代码值传递-- 例1a = 1b = ab = 2print("a ==",a)-- 输出:a == 1-- 例2a = "this is str"b = ab = "this is not str"print("a ==",a)-- 输出:a == this is str-- 例3function fun1(a) a = 2endb = 1fun1(b)print("b ==",b)-- 输出:b == 1-- 例4function f原创 2020-12-30 14:12:01 · 2852 阅读 · 2 评论 -
Lua中的for循环
Lua中的for循环Lua中的for循环有两类数值for循环泛型for循环数值循环格式如下for var = exp1,exp2,step do --执行体endvar 从 exp1 变化到 exp2,每次变化以 step为步长递增 var,并执行一次 “执行体”。step是可选的,如果不指定,默认为1。泛型循环泛型 for 循环通过一个迭代器函数来遍历所有值,泛型循环有两种格式for k,v in pairs(tab) do print(k,v)endfor k,v原创 2020-12-30 13:42:39 · 7706 阅读 · 0 评论 -
Lua获取周几
--获取星期几function getWeek_comm(y,m,d) if m == 1 or m == 2 then m = m + 12 y = y - 1 end local m1,_ = math.modf(3 * (m + 1) / 5) local m2,_ = math.modf(y / 4) loca...原创 2020-04-15 11:19:49 · 6501 阅读 · 2 评论 -
快速排序
function test() local tab = {73,6,57,88,60,42,83,73,48,85} local function quickSort(arr,s,e) if s < e then local i,j,temp = s,e,arr[s] while i < j do ...原创 2019-12-31 10:16:19 · 98 阅读 · 0 评论 -
Cocos2d-x lua 使用Cocos Studio导出的动画
Cocos Studio创建的项目时选择的模式不同,导出后使用的方式也不一样,暂时研究出两种模式下的使用:1. Animation Editor使用这个模式是动画编辑模式是用来做骨骼动画的,这种模式导出后的使用方法是:ccs.ArmatureDataManager:getInstance():addArmatureFileInfo("Test_1/Test0.png","Test_转载 2016-04-05 13:42:28 · 1713 阅读 · 0 评论 -
lua之base64加密和解密算法。
local function encodeBase64(source_str) local b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' local s64 = '' local str = source_str while #str > 0 d...转载 2018-07-24 11:32:17 · 2292 阅读 · 0 评论 -
lua去掉首尾特殊字符
function ReadFileHelper.trim(str) return (string.gsub(str, "^[%s\n\r\t]*(.-)[%s\n\r\t]*$", "%1"))end原创 2019-04-03 08:49:37 · 3467 阅读 · 0 评论 -
lua元表详解
元表的作用元表是用来定义对table或userdata操作方式的表举个例子local t1 = {1}local t2 = {2}local t3 = t1 + t2我们直接对两个table执行+运算,会报错lua: /usercode/file.lua:3: attempt to perform arithmetic on local 't1' (a table va...转载 2019-05-06 09:16:57 · 134 阅读 · 0 评论 -
Lua的string库函数、lua中string的模式匹配
--****************Lua的string库函数****************** --1.string.byte --string.byte (s [, i [, j]]) --取出字符串中的字节.i是起始位置,j是结束位置. --解析协议的时候经常用来将字符串中的某几个字节取出,然后重新组装为一个多字节的数字. --2.st...转载 2019-05-08 18:23:47 · 277 阅读 · 0 评论 -
cocos2d-lua在win32平台缩小窗口的处理
cocos2d-lua在win32平台缩小窗口的处理1)在main.lua中处理缩小 local function main() require("app.MyApp"):create():run() local glview =cc.Director:getInstance():getOpenGLView() glview:setFr...转载 2019-05-17 11:48:24 · 408 阅读 · 0 评论 -
获取滚动层当前位置的百分比
--获取滚动层当前位置的百分比function ShopLayer:GetScrollViewPercent(list) if list == nil then return end local size = list:getInnerContainerSize() --内容区大小 local pos = list:getInnerContainerPos...转载 2018-07-03 18:17:51 · 2181 阅读 · 0 评论 -
lua单个切割
local function split(input) local list = {} local len = string.len(input) local index = 1 while index <= len do local c = string.byte(input, index) ...转载 2018-05-14 16:50:45 · 336 阅读 · 0 评论 -
cocos2dx和lua计算两点的夹角
lua:--[[-- @param p1 A点 p2 B点 返回以A为比较点 B相对于A的夹角 范围为-180度到180度]]function getAngleByPos(p1,p2) local p = {} p.x = p2.x - p1.x p.y = p2.y - p1.y local r = math.atan2(p.y转载 2016-12-21 17:36:27 · 3825 阅读 · 0 评论 -
关于cocos2dx widget窗口中的关闭按钮 删除自身 的时候崩溃bug
回调函数里判断是弹起事件时会调用UIButton的removeFromParent方法,这时会导致游戏崩溃,代码中断在void Widget::onTouchEnded(Touch *touch, Event *unusedEvent)方法里的releaseUpEvent()调用处。响应UIButton的触摸弹起事件时,删除UIButton控件崩溃解决办法 void Widg转载 2016-04-29 15:23:13 · 796 阅读 · 0 评论 -
cocos2d_lua播放动画
local Circle_sp = cc.Sprite:create("Animation/liuguang1/lg1.png") Circle_sp:setAnchorPoint(cc.p(0.5,0.5)) Circle_sp:setPosition(cc.p(40,40)) self.StopTime_Btn:addChild(Circle_sp) local animation原创 2016-04-15 17:29:49 · 1464 阅读 · 0 评论 -
cocos2d Sprite Lua处理实例
1、通过纹理来创建CCSprite::spriteWithTexture(CCTexture2D *pTexture, const CCRect rect)使用:local texture1 = CCTextureCache:sharedTextureCache():addImage("dog.png")local spriteTest = CCSprite:spr转载 2016-04-07 13:41:49 · 369 阅读 · 0 评论 -
Lua中分割字符串
function Split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator转载 2016-02-22 17:43:58 · 21491 阅读 · 0 评论 -
lua获取当时时间
local getTime = os.date(“%c”);其中的%c可以是以下的一种:(注意大小写)%aabbreviated weekday name (e.g., Wed)%Afull weekday name (e.g., Wednesday)%babbreviated month name (e.g.,转载 2016-02-25 18:11:01 · 1609 阅读 · 0 评论 -
lua 取一个数字的整数部分
lua在对两个整数进行除法操作时不会向C那样将结果转换成整数,而是自动转换成浮点数。(lua没有数据类型之分)。如果要实现此功能需要取得结果中的整数部分。math.ceil(x)Returns the smallest integer larger than or equal to x.--取一个数的整数部分function getIntPart(x)if x转载 2016-02-25 16:11:53 · 3904 阅读 · 0 评论 -
lua学习:使用Lua处理游戏数据
在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件。其实lua在游戏开发中可以作为一个强大的保存、载入游戏数据的工具。1.载入游戏数据比如说,现在我有一份表单:data.xls用什么工具解析这个Excel文件并将数据载入游戏?我们可以使用Lua来完成这个工作。不过要先将表单保存为csv文件(数值用逗号隔开的文件)。从表单中,我们可以得知第转载 2016-04-01 18:21:41 · 470 阅读 · 0 评论 -
Lua中的loadfile、dofile、require详解
1.loadfile——只编译,不运行loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。比如,我们有一个hellofile.lua文件:print(“hello”);function hehe()print(“hello”);end这个文件里有一句代码,和一个函数。试试用loadfile加载这个文件,如下代码: loadfile(转载 2016-04-01 10:29:57 · 1265 阅读 · 0 评论 -
lua中常用的函数
在大多数Lua语法分析中可以获得这些标准Lua函数. 无可争辩, 我们可以查阅Lua网站, 但是一些少了的函数被Blizzard进行了调整. 下面列出了所有Lua函数. WoW API中的Lua注意在WoWAPI没有提供所有标准的Lua函数, 很显然, 操作系统以及文件I/O库是不支持的 Lua函数这些函数都是Lua编程语言的一部分, 点击这转载 2016-05-03 10:52:39 · 494 阅读 · 0 评论 -
quick 如何创建对象的传入参数
local Bubble = class("GGBubble", function (i) return display.newSprite("#bubble_"..i..".png")end)创建的地方 for i=1,6 do local t = bubble.new(i) t:setPosition(cc.p(i*100,200)) --t:setSpriteFra原创 2016-05-06 16:24:25 · 834 阅读 · 0 评论 -
cocos2dx LUA 读取本地JSON文件
一、在项目里面添加JSON文件二、通过文件名字得到文件的全路径(全路径) local filePath = cc.FileUtils:getInstance():fullPathForFilename( FILE_NAME )三、打开文件 local f = io.open( filePath, "r" )四、读,decode local转载 2016-09-07 13:56:27 · 2620 阅读 · 0 评论 -
cocos2d_lua加密
cocos luacompile -s src/-d out/ -e -k testKey -b testSignment或者 cocos luacompile -s src/ -d out/ -e -k testKey -b testSignment -disable-comlile运行可以生成一个out文件夹,(后者是保证在苹果64位上兼容,生成的文件夹为isa转载 2016-09-06 16:47:45 · 643 阅读 · 0 评论 -
luaj
local NativeInterFace = class("NativeInterFace")local ClassName = "com/guogame/needle/AppActivity"function NativeInterFace:ShareCallback() print("NativeInterFace:ShareCallback") local args = {}原创 2016-08-10 13:59:13 · 611 阅读 · 0 评论 -
lua dump函数
function dump(value, desciption, nesting) if type(nesting) ~= "number" then nesting = 3 end local lookupTable = {} local result = {} local function _v(v) if type(v) == "strin原创 2016-08-09 11:37:07 · 10327 阅读 · 0 评论 -
quick真机调试注意事项
今天在quick中要用到物理碰撞,display.newPhysicsScene写了这个后,在pc上面运行正常,但是到真机就会报createWithPhysics为空,找了好久,最后还是在群里的一位朋友告诉我的,谢谢好人!在此记录下,如果用物理引擎的话在真机中在application.mk中打开才能用CC_USE_CURL := 1CC_USE_CCSTUDIO := 1CC_USE_CCBU原创 2016-06-08 16:27:20 · 1172 阅读 · 0 评论 -
quick cocos2dx脚本加密
如果开发者不想让游戏中的资源或脚本文件轻易的暴露给其他人,一般会采用对文件进行加密的方式来保护文件或资源被盗用。Quick-Cocos2d-x 为开发者提供了xxtea加密算法,用来对脚本文件及资源进行加密,加密对象大体分为如下几种:1. 对脚本/资源文件本身加密2. 将脚本/资源文件压缩成zip,对zip进行加密3. 对脚本/资源文件加密后,再将其压缩后的zip再次加密首转载 2016-06-01 17:18:20 · 1377 阅读 · 0 评论 -
lua 随机数
原文链接:http://blog.csdn.net/zhangxaochen/article/details/8095007Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]])1. math.randomseed(n) 接收一个整数 n 作为随机序列种子。2. math.random([n [转载 2016-05-09 14:02:47 · 653 阅读 · 0 评论 -
quick cocos2dx截图保存到本地
local path = device.writablePath local size = cc.Director:getInstance():getWinSize() local screen = cc.RenderTexture:create(size.width, size.height) local temp = cc.Director:getInst原创 2016-05-31 13:34:14 · 1129 阅读 · 0 评论