cocos2dx的runAction: 反复运行,多个动作连接运行,多个动作同一时候运行的实现

cocos2dx的 runAction,假设某个动作重复运行用cc.RepeatForever:create,
多个动作连接运行用cc.Sequence:create,多个动作同一时候运行用cc.Spawn:create.


反复运行某个动作cc.RepeatForever:create
local action = cc.FadeOut:create(3)--淡出
local action = cc.FadeIn:create(3) -- 渐入
local action = cc.RotateBy:create(3.0,360) -- 旋转
local action = cc.ScaleTo:create(3,0.1) --  缩放

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
   local sprite2 = cc.Sprite:create("img/equipment/background_root.png")
    sprite2:setPosition(cc.p(visibleSize.width/2, visibleSize.height/4))
    mlayer:addChild(sprite2, 10)

    local action = cc.FadeOut:create(3)--淡出
    local action2 = cc.FadeIn:create(3) -- 渐入
    sprite2:runAction(cc.Sequence:create(action,action2,action)) 


 
多个动作同一时候变化,用cc.Spawn:create
sprite:runAction(cc.Spawn:create(cc.RotateBy:create(3.0,360),cc.ScaleTo:create(3,0.1)))



-------------------------------------
实例示范:

    local screen = cc.Director:getInstance():getRunningScene()
    local action1 = cc.ScaleTo:create(0.5, 1) --放大 參数:时间和缩放尺寸
    local action2 = cc.MoveTo:create(0.5, ccp(300,330)) --移动到某位置
    local action3 = cc.ScaleTo:create(0.2, 0.6) --缩小 參数:时间和缩放尺寸
    local action4 = cc.FadeOut:create(2)--淡出
    local action5 = cc.MoveTo:create(2, ccp(300,450)) --移动到某位置


    --复位 以便让动画反复
    local action6 = cc.FadeIn:create(0.01)--渐入
    local action7 = cc.MoveTo:create(0.01, ccp(300,300)) --移动到某位置

    local sprite = cc.Sprite:create("fonts/number_green.png") 
    sprite:setTextureRect(cc.rect(120, 0, 120, 28) )
    sprite:setPosition(300,300)
    sprite:setAnchorPoint(ccp(0.5,0))
    sprite:setScale(0.6)
    -- sprite:runAction(action1)--runAction运行一个动作
    -- sprite:runAction(cc.Spawn:create(action1,action2))--cc.Spawn:create同一时候运行多个动作
    -- sprite:runAction(cc.Sequence:create(cc.Spawn:create(action1,action2),action3,cc.Spawn:create(action4,action5)))--cc.Sequence:create循序运行多个动作
    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(某动作)反复运行某个动作

    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)))




———————————
http://blog.sina.com.cn/s/blog_6e5195850101ioxq.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值