runAction笔记(cocos2dx-lua)
>>>>>
不想每次忘了都翻书,所以做个笔记吧
>>>>>
相关接口:
node:runAction(action);
停止所有动作:node:stopAllAction();--我的项目除了这个其他都用不了,mmp
停止指定action对象:node:stopAction(action);
停止指定tag对象:node:stopActionByTag(tag);
>>>>>
简单又好看的runAction:
cc.CallFunc:create(function() end)--函数调用 cc.DelayTime:create(1)--延迟(啥也不做) cc.ScaleTo:create(0.2,0.8)--在0.2秒内缩放到0.8倍的尺寸 cc.ScaleBy:create(0.2,0.8)--在0.2秒内缩放增加0.8倍的尺寸?不常用 cc.MoveTo:create(0.5,cc.p(0,15))--在0.5秒内移动到坐标为(0,15)的位置 cc.MoveBy:create(0.5,cc.p(0,15))--在0.5秒内y轴正向移动15像素的距离
>>>>>
执行方式:
cc.Repeat:create(action,times)--重复执行times次action cc.RepeatForever:create(action)--重复执行无限次action cc.Spawn:create(action1,action2,...)--同时执行action1... cc.Sequence:create(action1,action2,...)--顺序执行action1... cc.Follow:create(followedNode,rect)--在rect范围内跟随执行followedNode节点的action(可用于地图随精灵移动)
>>>>>
运动方式:
In:先慢后快
Out:先快后慢
InOut:慢-快-慢
<wiz_code_mirror>
cc.EaseSineInOut:ceate(cc.MoveBy:create(0.5,cc.p(0,100)))--Sine缓冲:慢-快-慢 cc.EaseExplInOut:ceate(cc.MoveBy:create(0.5,cc.p(0,100)))--指数缓冲 cc.EaseElasticInOut:ceate(cc.MoveBy:create(0.5,cc.p(0,100)))--弹性缓冲 cc.EaseBounceInOut:ceate(cc.MoveBy:create(0.5,cc.p(0,100)))--跳跃缓冲 cc.EaseBackInOut:ceate(cc.MoveBy:create(0.5,cc.p(0,100)))--回震缓冲
上图︿( ̄︶ ̄),嗯,有点大,缩小了
>>>>>
tableView列表类型出场效果
--次数控制:在ctor申明 self.isAppear = 4 --有多少个需要出场就写多少个 --函数体: function className:functionName(node) if node and self.isAppear >=1 then self.isAppear = self.isAppear - 1 --执行出场东的次数,每次进来用掉一次 node:setScale(1.15) node:setVisible(false) local action = cc.Sequence:create( cc.DelayTime:create(self.isAppear * 0.08) cc.CallFunc:create(function() node:setVisible(true) end), cc.EaseInOut:create(cc.ScaleTo:create(0.12,1),0.2), cc.CallFunc:create(function() node:setScale(1) end) ) node:runAction(action) end end --调用: if (self.cellNum - idx) >= 4 then --self.cellNum:列表总数,idx:当前编号,>= 4:这个根据执行次数和倒续正续自己改 self:functionName(node) end
函数设置
local action = cc.RepeatForever:create( cc.ScaleTo:create(0.2,1.2)--在0.2秒内缩放到1.2倍的尺寸 cc.ScaleTo:create(0.2,1) ) node:runAction(action)
出场特效
--效果:延迟1秒,在0.2s内,缩放到0.8倍---适合出场特效 node:runAction(cc.Sequence:create( cc.DelayTime:create(1), cc.ScaleTo:create(0.2,0.8) ));
缩放循环效果
---效果:使图标永远重复放大缩小效果。----适合循环特效 local action = cc.Sequence:create( cc.ScaleTo:create(0.5,1.1),--0.5s内放大百分之十 cc.ScaleTo:create(0.5,1)--0.5s内恢复原有尺寸 ) node:runAction(cc.RepeatForever:create(action));
上下浮动循环效果
--注:这里使用上面的写法会报错 local action = cc.MoveBy:create(0.5,cc.p(0,15))--向上移动 local res = action:reverse();--反转(反转成向下移动) node:runAction(cc.RepeatForever:create(cc.Sequence:create(action,res)));--永远重复上下浮动
>>>>>
>>>>>
欢迎转载,请注明出处!