天天看点

cocos2d-x TestLua 之 CCSequence (关于纹理图集)

  1. local actionSequenceLayer = nil

    --不带参数的回调函数1  

  2. local function ActionSequenceCallback1()  
  3.     local label = CCLabelTTF:create("回调函数 1", "Marker Felt", 24)  
  4.     label:setPosition(size.width / 4, size.height / 2)  
  5.     actionSequenceLayer:addChild(label)  
  6. end  
  7. --带参数的回调函数2  
  8. local function ActionSequenceCallback2(sender)  
  9.     local label = CCLabelTTF:create("回调函数 2", "Marker Felt", 24)  
  10.     label:setPosition(ccp(size.width / 4 * 2, size.height / 2))  
  11.     actionSequenceLayer:addChild(label)  
  12.     print("回调函数2:我是执行此动作的精妙坐标:",sender:getPosition())  
  13. end  
  14. --带参数的回调函数3  
  15. local function ActionSequenceCallback3(sender)  
  16.     local label = CCLabelTTF:create("回调函数 3", "Marker Felt", 24)  
  17.     label:setPosition(ccp(size.width / 4 * 3, size.height / 2))  
  18.     actionSequenceLayer:addChild(label)  
  19.     print("回调函数3:我是执行此动作的精妙坐标:",sender:getPosition())  
  20. end  
  21. local function ActionSequence()  
  22.     actionSequenceLayer = CCLayer:create()  
  23.     local man = CCSprite:create("man.png")  
  24.     man:setPosition(ccp(200,300))  
  25.     actionSequenceLayer:addChild(man)  
  26.     man:setVisible(false)  
  27.     local array = CCArray:create()  
  28.     array:addObject(CCPlace:create(ccp(200,200)))  
  29.     array:addObject(CCShow:create())  
  30.     array:addObject(CCMoveBy:create(1, ccp(100,0)))  
  31.     array:addObject(CCCallFunc:create(ActionSequenceCallback1))  
  32.     array:addObject(CCCallFuncN:create(ActionSequenceCallback2))  
  33.     array:addObject(CCCallFuncN:create(ActionSequenceCallback3))  
  34.     local action = CCSequence:create(array) --如果按序执行动作只有两个,则可用:CCSequence:createWithTwoActions(action1,actions2),多余两个则用数组  
  35.     man:runAction(action)  
  36. end  
  37. ActionSequence()  
  38. local scene = CCScene:create()  
  39. scene:addChild(actionSequenceLayer)  
  40. CCDirector:sharedDirector():runWithScene(scene)  

再介绍些瞬时动作:瞬时动作不需要时间,立即完成

[plain]  view plain copy

  1. --瞬时动作,瞬时动作不需要时间,立即完成  
  2. sprite:runAction(CCPlace:create(ccp(200,600)))  --放置,相当于setPosition()  
  3. sprite:runAction(CCHide:create())               --隐藏,相当于setVisible(false)  
  4. sprite:runAction(CCShow:create())               --显示,相当于setVisible(true)  
  5. sprite:runAction(CCFlipX:create(true))          --水平翻转,相当于setFlipX(true)  
  6. sprite:runAction(CCFlipY:create(true))          --垂直翻转,相当于setFlipY(true)  

ReverseSequence

[plain]  view plain copy

  1. local function ActionReverseSequence()  
  2.     local move1 = CCMoveBy:create(1,ccp(250,0))  
  3.     local move2 = CCMoveBy:create(1,ccp(0,50))  
  4.     local moveBack = move1:reverse()  
  5.     local arr = CCArray:create()  
  6.     arr:addObject(move1)  
  7.     arr:addObject(move2)  
  8.     arr:addObject(moveBack)  
  9.     local seq = CCSequence:create(arr)  
  10.     sprite:runAction(CCSequence:createWithTwoActions(seq,seq:reverse()))  
  11. end  

ReverseSequence2

[plain]  view plain copy

  1. local function ActionReverseSequence2()  
  2.     --序列中可以同时有瞬时动作(InstantAction)和延时动作(IntervalAction)  
  3.     local move1 = CCMoveBy:create(1,ccp(200,0))  
  4.     local move2 = CCMoveBy:create(1,ccp(0,50))  
  5.     --可见切换   
  6.     local tog1 = CCToggleVisibility:create()  
  7.     local tog2 = CCToggleVisibility:create()  
  8.     local moveBack = move1:reverse()  
  9.     local arr1 = CCArray:create()  
  10.     arr1:addObject(move1)  
  11.     arr1:addObject(tog1)  
  12.     arr1:addObject(move2)  
  13.     arr1:addObject(tog2)  
  14.     arr1:addObject(moveBack)  
  15.     local seq = CCSequence:create(arr1)  
  16.     local action = CCRepeat:create(CCSequence:createWithTwoActions(seq,seq:reverse()),3)  
  17.     whitegirl:runAction(action)  
  18.     --CCHide的reverse为CCShow,反之亦然  
  19.     local move3 = CCMoveBy:create(1,ccp(100,0))  
  20.     local hide = CCHide:create()  
  21.     local move4 = CCMoveBy:create(1,ccp(50,0))  
  22.     local arr2 = CCArray:create()  
  23.     arr2:addObject(move3)  
  24.     arr2:addObject(hide)  
  25.     arr2:addObject(move4)  
  26.     local seq = CCSequence:create(arr2)  
  27.     local action2 = CCSequence:createWithTwoActions(seq,seq:reverse())  
  28.     blackgirl:runAction(action2)  
  29. end  

继续阅读