lua对多个精灵执行一系列动作,延时失效
2024-08-25 23:49:51
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中函数传参的资料,希望赐教!
最新文章
- QT QString 很全的使用 (转)
- cinder节点部署
- word第二讲(0806)
- XAML中的特殊符号几空白字符处理
- 形如(function(){}).call()的js语句
- 用C#访问SSRS自动导出SSRS报表
- 1.Knockout.Js(简介)
- 开发问题记录——AE开发提示80040111错误
- ios开发之xcode6中如何添加pch全局引用文件
- Matlab绘制三维图形以及提示框
- ASP.NET中的MD5加密
- PLSQL连接Oracle数据库,使用instantclient_10_2客户端
- (function($){...})(jQuery)和$(document).ready(function(){}) 的区别
- ASP.NET Cookie 概述
- winform listview用法
- awk多分隔符功能及wc命令案列及企业级应用
- .Net移动开发平台 ,基于VisualStudio的可视化开发——Smobiler平台入门教程
- 在Html页面中调用ajax代码
- Android学习系列(17)--App列表之圆角ListView(续)
- mysql手工注入总结