cocos2dx重复执行action,多个action连接执行,多个action同时执行

转载请注明原文地址:https://blog.csdn.net/u013174689/article/details/41959241utm_source=tuicool&utm_medium=referral

cocos2dx的 runAction,如果某个动作反复执行用cc.RepeatForever:create,
多个动作连接执行用cc.Sequence:create,多个动作同时执行用cc.Spawn:create.

重复执行某个动作cc.RepeatForever:create
[plain]  view plain  copy
  1. local action = cc.FadeOut:create(3)--淡出  
  2. local action = cc.FadeIn:create(3) -- 渐入  
  3. local action = cc.RotateBy:create(3.0,360) -- 旋转  
  4. local action = cc.ScaleTo:create(3,0.1) --  缩放  
  5.   
  6. cc.RepeatForever:create(某动作)--一个动作不断重复执行用  
重复执行某个动作n次,用 cc.Repeat:create

 local rep1 = cc.Repeat:create(seq, 10)


静止n秒,用DelayTime,用法如下: 

cc.DelayTime:create(1.4)


多个动作的runAction

一个执行完毕后再连接另一个,用cc.Sequence:create
[plain]  view plain  copy
  1. local sprite2 = cc.Sprite:create("img/equipment/background_root.png")  
  2.  sprite2:setPosition(cc.p(visibleSize.width/2, visibleSize.height/4))  
  3.  mlayer:addChild(sprite2, 10)  
  4.   
  5.  local action = cc.FadeOut:create(3)--淡出  
  6.  local action2 = cc.FadeIn:create(3) -- 渐入  
  7.  sprite2:runAction(cc.Sequence:create(action,action2,action))   
多个动作同时变化,用cc.Spawn:create
[plain]  view plain  copy
  1. sprite:runAction(cc.Spawn:create(cc.RotateBy:create(3.0,360),cc.ScaleTo:create(3,0.1)))  
-------------------------------------
实例示范:

[plain]  view plain  copy
  1. local screen = cc.Director:getInstance():getRunningScene()  
  2. local action1 = cc.ScaleTo:create(0.5, 1) --放大 参数:时间和缩放尺寸  
  3. local action2 = cc.MoveTo:create(0.5, ccp(300,330)) --移动到某位置  
  4. local action3 = cc.ScaleTo:create(0.2, 0.6) --缩小 参数:时间和缩放尺寸  
  5. local action4 = cc.FadeOut:create(2)--淡出  
  6. local action5 = cc.MoveTo:create(2, ccp(300,450)) --移动到某位置  
  7.   
  8.   
  9. --复位 以便让动画重复  
  10. local action6 = cc.FadeIn:create(0.01)--渐入  
  11. local action7 = cc.MoveTo:create(0.01, ccp(300,300)) --移动到某位置  
  12.   
  13. local sprite = cc.Sprite:create("fonts/number_green.png")   
  14. sprite:setTextureRect(cc.rect(120, 0, 120, 28) )  
  15. sprite:setPosition(300,300)  
  16. sprite:setAnchorPoint(ccp(0.5,0))  
  17. sprite:setScale(0.6)  
  18. -- sprite:runAction(action1)--runAction执行一个动作  
  19. -- sprite:runAction(cc.Spawn:create(action1,action2))--cc.Spawn:create同时执行多个动作  
  20. -- sprite:runAction(cc.Sequence:create(cc.Spawn:create(action1,action2),action3,cc.Spawn:create(action4,action5)))--cc.Sequence:create循序执行多个动作  
  21. sprite:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.Spawn:create(action1,action2),action3,cc.Spawn:create(action4,action5),cc.Spawn:create(action6,action7))))--cc.RepeatForever:create(某动作)重复执行某个动作  
  22.   
  23. screen:addChild(sprite)  

action中回调方法cc.CallFunc:create()

  local function removeThis()

        ret:getParent():removeChild(ret, true)

        Helper.nextAction()

    end

    --After 1.5 second, self will be removed.

    ret:runAction( cc.Sequence:create(cc.DelayTime:create(1.4),cc.CallFunc:create(removeThis)))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值