Lua
o向阳花o
渴望向阳的温暖,绽放自己的光彩
展开
-
定时器 ProgressTimer 进度条.quick-lua
---------------------------------------进度条------------------------------------------------ --进度条背景 local barBg = display.newSprite("#loadingScene_frame.png") self:addChild(barBg) bar原创 2016-01-19 23:40:25 · 611 阅读 · 0 评论 -
Lua中的ipair 和 pair的区别
原来,pairs会遍历table的所有键值对。table是键值对的数据结构。而ipairs就是固定地从key值1开始,下次key累加1进行遍历,如果key对应的value不存在,就停止遍历。顺便说下,记忆也很简单,带i的就是根据integer key值从1开始遍历的。请看个例子:tb = {"oh", [3] = "god", "my", [5] = "hello", [6] = "w原创 2016-05-11 17:44:30 · 3544 阅读 · 0 评论 -
Lua代码编写注意点
1. 发现Lua的东西都是“浅拷贝”, 没有传址, 引用,深拷贝等, 这对一些精良的设计造成难度。2. Lua变量无类型配对,但调用Lua的系统却有类型配对,这两者的矛盾导致交互设计的成本。3. 为了代码的高度复用需要把相关的类型抽象出来,但Lua的代码检测能力较宽松,即使参数配错了(不同的类系)依然可以进行, 这对实现者造成了数据流转载 2016-05-12 12:04:52 · 1405 阅读 · 0 评论 -
lua中的全局函数
--内部全局函数--内部全局函数会以最后一次调用的外部参数为其参数function A(_test_par) function B() print(_test_par) end local public = {} function public.test() B() end return publicenda1 = A(1)原创 2016-05-12 12:06:52 · 2465 阅读 · 0 评论 -
lua中的String
You can find details about the string library in section 5.4 of the Reference Manual [1]. For practical examples of usage of the string library, have a look at StringRecipes.Note: In Lua string原创 2016-05-14 09:59:17 · 1207 阅读 · 0 评论 -
Lua中__index和__newindex实践
前言这篇博文将通过几个简单的实例演示,巩固对__index和__newindex的理解,同时加深对Lua中元表和元方法的理解,如果对Lua的元表和元方法还不是很熟悉的话,请参考这篇文章:《Lua中的元表与元方法》。具有默认值的table我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下:function setDe转载 2016-05-14 10:42:34 · 404 阅读 · 0 评论 -
Lua:元表(metatable)与元方法(meatmethod)
元表概念:引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否定义了关于次操作的元方法。例如两个table相加,先检查两者之一是否有元表,之后检查是否有一转载 2016-05-14 11:16:53 · 643 阅读 · 0 评论 -
lua中table.sort的回调函数
- CONTENT -- --- lua中table.sort的回调函数的在确定大小关系(>/-- --- -- 实例一 -- --- local t = { 3,2,5,1,4 } local function compare( a, b ) return a end table.sort( t, compare ) print( table.转载 2016-05-04 10:42:35 · 1160 阅读 · 0 评论 -
cocos2d-x tolua++ 类型转换
tolua++的包装会限制参数类型,故用类型转换,如下:假设layerobj 为CCLayer类型,则local nodeobj = tolua.cast(layerobj, "CCNode")用法:转换后的对象 = tolua.cast(原对象, "要转换到的类型")local node = tolua.cast(children:objectAtIndex(i-1原创 2016-05-17 15:12:41 · 552 阅读 · 0 评论 -
关于H5闪退问题--资源优化
《全民霸业》作为一款大型的h5游戏。资源的处理加载是一个十分紧要的问题。首先是资源的处理:1.压缩图片,帅选掉不必要的图片,将多张散图打成plist大图,大图尽量靠近2的幂次方,2.更改图片的大小,使其尽量靠近2的幂次方,3.适当的把一张按照尺寸缩小1-2倍,然后在程序中在把图片适当的放大,虽然有些不清楚,但是对游戏资源大小的控制是十分有帮助的,4.在代码中适当的对图片进行销毁操作,减小同原创 2016-09-26 18:20:03 · 5675 阅读 · 1 评论 -
---遮罩的实现
function NodeHelper:createMaskedLayer(parentNode,preferedSize,position,inverted) ---遮罩的实现 if inverted == nil then inverted = true end if parentNode:getChildByTag(90030) then pare原创 2016-10-11 22:24:11 · 492 阅读 · 0 评论 -
Lua中的select("#", ...)
--simple and rough version, be carefulfunction common:table_merge(...) local tb = {} for i = 1, select("#", ...) do table.foreach((select(i, ...)), function(k, v) tb[k] = v end) end return原创 2016-10-24 18:48:21 · 3744 阅读 · 0 评论 -
深入理解Lua的全局变量_G以及源码实现
原文 http://blog.csdn.net/maximuszhou/article/details/24105673主题 Lua 注册表 在Lua脚本层,Lua将所有的全局变量保存在一个常规的table中,这个table被称为全局环境,并且将这个table保存在一个全局变量_G中,也就是说在脚本中可以用_G获取这个全局table,并且有_G._G转载 2016-10-24 20:16:08 · 3526 阅读 · 0 评论 -
对于类的调用方法
方法一:实例化一个类的对象,通过new方法 this.action = new FoxAni(parent);方法二:单例化private static _instance:PlayerService;static get instance():PlayerService { if (!this._instance) {原创 2016-10-17 14:30:18 · 635 阅读 · 0 评论 -
xml格式解析
//printf("项目中的xml解析\n");//得到路径const char *path = lua_tostring(L, 1);//得到 最后的表明const char *tableKey = lua_tostring(L, 2);lua_getglobal(L, "cc");lua_getfield(L, -1, "GameArgs");//把路径转为原创 2016-01-25 11:07:23 · 463 阅读 · 0 评论 -
cc.DrawNode
-- hero的边框 self:heroRect()function FightLayer:heroRect( ... ) if self.heroRectNode then self.heroRectNode:removeFromParent() end -- hero是移动的 随时删除创建 根据Position位置创建 self.heroRectNode = cc.DrawNode原创 2016-01-25 23:35:23 · 768 阅读 · 2 评论 -
for i,v in ipairs(self.npcs) do
创建表 NPC数组 self.npcs = {}插入到数组中able.insert(self.npcs, npc)遍历删除 for i,v in ipairs(self.npcs) do -- 判断是否移除NPC if ( v.face == "right" and v:getPositionX() > display.widt原创 2016-01-25 18:03:16 · 1106 阅读 · 0 评论 -
lua_api
转载自:http://www.cnblogs.com/ringofthec/archive/2010/10/22/lua.htmlhttp://www.cnblogs.com/ringofthec/archive/2010/11/04/luaapi.htmlhttp://www.cnblogs.com/ringofthec/archive/2010/11/09/lua_State.转载 2016-01-20 00:03:30 · 397 阅读 · 0 评论 -
quick-cocos2d 开发工具sublime text3及其强力插件QuickXDev
sublime text是一个小巧,强大,界面漂亮的代码编辑器,目前正式版本为2,开发版为3。下载地址:http://www.sublimetext.com/。sublime text的很多功能都是依赖于其强大的插件系统。sublime text支持lua语言,但大部分功能都没有,如代码提示等等。下面介绍sublime text开发quick-cocos2d-x的强力插件QuickXDev原创 2016-01-03 23:11:48 · 3383 阅读 · 0 评论 -
移动 摇杆的创建
function ControlLayer:createDir( )--加入摇杆背景self.dirBg = display.newSprite("#joyStick.png")self:addChild(self.dirBg)self.dirBg:setPosition(self.dirBg:getContentSize().width*0.5 + 20, self.dir原创 2016-01-20 21:09:37 · 514 阅读 · 0 评论 -
quickLua Animation 封装((.plist .png))
--[[全局函数 (工具类)把项目中公共的函数 封装到这个文件中]]-- plist 文件路径function getAnimation( _plistName, _heroId,_action,_time)-- print("引用全局函数")local plistName = _plistNamelocal animation = display.getAni原创 2016-01-19 23:34:54 · 358 阅读 · 0 评论 -
GameScene 三木运算符
----组织架构GameScene( 战斗层 控制层)-- require("fightLayer")-- 创建hero (可以再次封装) -- hero:根据controllayer的状态进行控制,进行动作-- 执行的动作,释放技能-- 定时器 移动hero-- require("controlLayer")-- 加载资源,创建控制-- 移动原创 2016-01-24 23:47:19 · 955 阅读 · 0 评论 -
Qicklua 定时器
计时器,就是让系统每隔一段时间调用我们的函数,来处理一些事情,比如飞机战斗游戏中,子弹与敌机之间的碰撞,系统每一帧调用检测函数,检测两者是否碰撞。quick里面帮我们把cocos2dx lua提供的scheduler封装到了framework里面的scheduler.lua文件里面。注意:计时器模块在初始化中不会自动载入,所以我们得手动获得这个模块转载 2016-01-24 23:58:14 · 368 阅读 · 0 评论 -
打包简记
Android环境搭建:1、启动Eclipse,点击Windows->Preference->Android 在安卓属性配置里面添加Android SDK2、如果没有Android版本,运行Android SDK Manager 下载相关版本(2,2以上 API8 到 4,0版本 API15,要根据需要设置Android版本3.0平板)3、配置NDK,打开环境变量,在当前用户设置NDK原创 2016-01-25 00:05:11 · 337 阅读 · 0 评论 -
lua 5.1参考手册
http://www.codingnow.com/2000/download/lua_manual.html原创 2016-01-25 00:09:56 · 342 阅读 · 0 评论 -
quick-lua攻击按键
--攻击按键self.atkBtn = cc.ui.UIPushButton.new({normal = "#joyStickButton.png",pressed = "#joyStickButtonHighLight.png",disabled = "#joyStickButton.png",}):onButtonClicked(function ( ... )pr原创 2016-01-24 23:53:32 · 920 阅读 · 0 评论 -
Animation 优化
优化:动画,先判断是否是应经加载过了 如果是的话就不要再继续加载了,做一下判断--防止重复加载local animation = display.getAnimationCache(plistName)if animation then return animation end选中未被选中的状态改变,选中执行动画每次选择都要做一个判断self.hero:st原创 2016-01-20 20:10:17 · 466 阅读 · 0 评论 -
添加touch事件 addNodeEventListener
-- 摇杆球self.dir = display.newSprite("#joyStickCenter.png")self.dirBg:addChild(self.dir)self.orginPoint = cc.p( self.dirBg:getContentSize().width*0.5,self.dirBg:getContentSize().height*0.5 )self原创 2016-01-20 20:15:23 · 531 阅读 · 0 评论 -
quicklua随机数
-- 随机种子math.randomseed(os.time()) local random = math.random() --0~1 之间的小数 local y = math.random(0, display.cy) self:setPosition(x, y) local random = math.random(20) -- 1 ~ 20原创 2016-01-25 17:15:28 · 433 阅读 · 0 评论 -
读取xml文件的值 字符串的截取
xml文件中为 40001 10001_10009_10002_10003_10035_10017_10016_10019_10010 0.15_0.1_0.15_0.15_0.01_0.11_0.11_0.11_0.11lua文件中为 -- 小怪信息 self.soldierInfo = {} -- 放入Id 概率原创 2016-01-25 11:51:12 · 2459 阅读 · 0 评论 -
Lua时间转化 秒转换为日期
function common:second2DateString(second, withSecond) local hms = Split(FxGameMaths:formatSecondsToTime(second), ":") local dateStr = "" local h = tonumber(hms[1]) if h > 0 then if h >= 24 the原创 2016-10-17 15:26:02 · 9204 阅读 · 0 评论