lua对多个精灵执行一系列动作,延时失效
function MainPlayerCards:sendCards()
local winSize = cc.Director:getInstance():getWinSize()
local nSize = #self.handCard
for i =,nSize do
if self.handCard[i] then
self.handCard[i]:removeFromParent(true)
self.handCard[i] = nil
end
end
local function sendOneCard(pNode)
local tag = pNode:getTag()
pNode:removeFromParent(true)
local sp = cc.Sprite:createWithSpriteFrameName(string.format("l_%d.png",self.handCard[tag]))
sp:setPosition(cc.p(self:CardPos(tag)))
table.insert(self.handCard, sp)
self:addChild(sp)
end
for i=,nSize do
local pBackSp = cc.Sprite:createWithSpriteFrameName("l_back.png")
pBackSp:setPosition(cc.p(winSize.width/,winSize.height/))
pBackSp:setTag(i)
self:addChild(pBackSp,nSize -i)
local arrayAction ={}
table.insert(arrayAction, cc.DelayTime:create((i)*0.2))
table.insert(arrayAction, cc.MoveTo:create(0.2, cc.p(self:CardPos(i))))
table.insert(arrayAction, cc.CallFunc:create(sendOneCard))
pBackSp:runAction(cc.Sequence:create(arrayAction))
end
end
上述为:从中间开始,一张一张进行发牌动画的创建
如果table.insert(arrayAction, cc.DelayTime:create((i)*0.2))中,将时间改为常量,并没有按想像的执行完延时后,在进行下一次for循环,而是所有牌的动画一次性执行完毕,并且很多时候,我们看不到,误以为moveto动作没执行,另外哪位有关于table.insert(arrayAction, cc.CallFunc:create(sendOneCard))中cc.CallFunc中函数传参的资料,希望赐教!
lua对多个精灵执行一系列动作,延时失效的更多相关文章
- cocos2d-js使用plist执行自身动作
首先需要将精灵动作帧动画图片使用TexturePacker创建plist,创建好后,将生成的plist和png图片(所有帧动画图片集成的一张大图): 百牛信息技术bainiu.ltd整理发布于博客园 ...
- 你好,C++(23) 4.4.2 工资程序成长记:用数组处理批量数据,用循环结构执行重复动作
4.4 从语句到程序 了解了各种表达式和语句之后,就相当于掌握了写作文要用到的词语和句子,但是,仅有词语和句子是无法构成一篇有意义的文章的.要完成一篇文章,先需要确定这篇文章的结构,是先分述再总述, ...
- spring 中单例 bean 初始化之后和销毁之前执行指定动作 postconstruct 和 preDestroy
1 生命周期方法, 在指定bean 创建完成后执行初始化动作或销毁之前做一些善后动作.有 3 种方法 1)实现接口 InitializingBean 然后实现 afterPropertiesSet 方 ...
- Android 按钮长按下去重复执行某个动作,放开后停止执行动作
Android开发中,常遇到一种需求,即按钮长按下去重复执行某个动作,放开后停止执行动作.网上找了许多代码,都没有适合的,于是自己动手写了一个. 基本思路是:首先设置一个标识变量,用于标识是否处于按下 ...
- 当一个控件属性不存在的时候,IDE会出错在这里(说明是TWinControl.ReadState在读属性,并执行相关动作)
procedure TWinControl.ReadState(Reader: TReader); begin DisableAlign; try inherited ReadState(Reader ...
- 基于Lua语言的触动精灵脚本开发
工具下载 官网地址 连接模拟器 studio连接 首先要先下载ADB模拟器连接IDE,注意,这里一定要用官网提供的ADB,安卓开发的adb不行!!! 下载好之后,打开studio,输入Access K ...
- 关于lua垃圾回收是否会执行__gc函数呢?
直接上代码 -- test.lua do local x = setmetatable({},{ __gc = function() print("works") end }) e ...
- lua技巧分享之保护执行
我们在c#/c++里为了防止调用出现异常的时候程序可以正常的执行,经常使用try{}catch{}的结构, 那么,语言简单的lua是怎么做到的呢?答案就在pcall 先简单的介绍一下这个函数: --尝 ...
- cocos2d-x 父节点和子节点执行不同动作
Test6::Test6() { CCSprite* sp1 = CCSprite::create(s_pPathSister1); CCSprite* sp11 = CCSprite::create ...
随机推荐
- linux中mysql命令方式备份数据的问题
这几天公司新出了个组件化的项目,里面需要用到mysql数据库相关的技术,由于之前一直用的mongodb,所以mysql几乎忘光了,于是只能在linux虚拟机中重新开始学习. 基本的增删改查还好,但是在 ...
- freemarker之include指令
freemarker之include指令 1.父页面ftl <html> <head> <meta http-equiv="content-type" ...
- 程序员的职场潜意识Top10
什么叫潜规则?其实就是不明文规定的一些规则,关键是他没法明文规定,因为有的规则太没节操.在我们职场中有些规则你不遵守将举步艰难,而要玩转这些潜规则,那么你必须要具备如下10个潜意识: 1.项目会议.那 ...
- Caused by: The Result type [json] which is defined in the Result annotation on the class
1.错误描述 严重: Dispatcher initialization failed Unable to load configuration. - [unknown location] at co ...
- 关于json.parse和json.stringify的区别
json.parse是将字符串解析成json格式 而json.stringify是将json解析成字符串格式
- hdu5798 Stabilization
温习一下多校的题目 这题主要抓住一点,亦或值的贡献是固定的 所以按位搜索即可 #include<bits/stdc++.h> using namespace std; typedef lo ...
- 线段树 (区间查询最大 区间求和 区间加)带lazy
; struct Segment_tree { struct Node { int val,Max,lazy; ]; void init() { lazy=son[]=son[]=Size=val=M ...
- 关于new,delete,malloc,free的一些总结
首先,new,delete都是c++的关键字并不是函数,通过特定的语法组成表达式,new可以在编译的时候确定其返回值.可以直接使用string *p=new string("asdfgh&q ...
- C语言编程之道--读书笔记
C语言语法 const int nListNum =sizeof(aPrimeList)/sizeof(unsigned);//计算素数表里元素的个数 1:#define INM_MAX 32767 ...
- ubuntu上修改root密码
ubuntu上修改root密码 author: headsen chen 2017-10-12 10:49:28 个人原创,转载请注明作者,出处. sudo passwd 两次输入想设置的r ...