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)));--永远重复上下浮动

 

>>>>>

 

>>>>>

posted @ 2018-09-04 09:39  黄皮书生  阅读(1673)  评论(0编辑  收藏  举报