1.基本动作
- 放置 – Place
- 隐藏 – Hide
- 显示 – Show
- 可见切换 – ToggleVisibility
- 水平翻转/垂直翻转
- 网格
2.延时动作
- 移动到 – CCMoveTo
- 移动– CCMoveBy
- 跳跃到 – CCJumpTo
设置终点位置和跳跃的高度和次数。 - 跳跃 – CCJumpBy
设置终点位置和跳跃的高度和次数。 - 贝塞尔 – CCBezierBy
支持 3 次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终点切线方向,P3-终点。 - 放大到 – CCScaleTo
设置放大倍数,是浮点型。 - 放大 – CCScaleBy
- 旋转到 – CCRotateTo
- 旋转 – CCRotateBy
- 闪烁 – CCBlink
设定闪烁次数 - 色调变化到 – CCTintTo
- 色调变换 – CCTintBy
- 变暗到 – CCFadeTo
- 由无变亮 – CCFadeIn
- 由亮变无 – CCFadeOut
3.组合动作
- 序列 – CCSequence
- 同步 – Spawn
- 重复有线次数 – Repeate
- 反动作 – Reverse
- 动画 – Animation
- 无限重复 – RepeatForever
这个时候可以得到一个action,然后给这个动作设置tag:
4.速度变化
- EaseIn 由慢至快。
- EaseOut 由快至慢
- EaseInOut 由慢至快再由快至慢。
- EaseSineIn由慢至快。
- EaseSineOut 由快至慢
- EaseSineInOut 由慢至快再由快至慢。
- EaseExponentialIn 由慢至极快。
- EaseExponentialOut 由极快至慢。
- EaseExponentialInOut 由慢至极快再由极快至慢。
- EaseElasticIn 橡皮筋式的速度变化
- EaseElasticOut
- EaseElasticInOut
- EaseBounceIn 弹跳,弹起的意思
- EaseBounceOut
- EaseBounceInOut
- EaseBackIn
- EaseBackOut
- EaseBackInOut
- Speed 人工设定速度,还可通过 SetSpeed 不断调整。
5.扩展动作
- 延时动作 – Delay ,比如在动作序列中增加一个时间间歇
- 函数
1 void ExtendActionLayer::onCallBack1()
2 {
3
4 }
5
6 void ExtendActionLayer::onCallFunc(CCObject* pSender)
7 {
8
9
10
11
12 }
2.CCCallFuncN
调用函数,并将当前对象的指针(CCNode指针)作为第一个参数传递进去。
1 void ExtendActionLayer::onCallBack2(CCNode* pSender) 2 { 3 // 在这个例子里,pSender就是flight,因为是他执行了那个actionF 4 pSender->runAction(CCTintBy::actionWithDuration(1.0f, 255, 0, 255)); 5 } 6 7 void ExtendActionLayer::onCallFuncN(CCObject* pSender) 8 { 9 CCFiniteTimeAction *action1 = CCMoveBy::actionWithDuration(2.0f, ccp(200, 200)); 10 CCFiniteTimeAction *action2 = action1->reverse(); 11 CCFiniteTimeAction *actionF = CCCallFuncN::actionWithTarget(this, callfuncN_selector(ExtendActionLayer::onCallBack2)); 12 flight->runAction(CCSequence::actions(action1, actionF, action2, NULL)); 13 }
3.CCCallFuncND
在前一种方式的基础上增加一个数据参数,这是void指针类型。
1 void ExtendActionLayer::onCallBack3(CCNode* pSender, void* pData) 2 { 3 pSender->runAction(CCTintBy::actionWithDuration(static_cast<float>((int)pData), 255,0, 255)); 4 } 5 6 void ExtendActionLayer::onCallFuncND(CCObject* pSender) 7 { 8 CCFiniteTimeAction *action1 = CCMoveBy::actionWithDuration(2.0f, ccp(200, 200)); 9 CCFiniteTimeAction *action2 = action1->reverse(); 10 // 这里直接将整数常量强转成(void *)类型似乎有欠妥当,但对这些Action的生命周期不太清楚,稍后深入一下。 11 CCFiniteTimeAction *actionF = CCCallFuncND::actionWithTarget(this, callfuncND_selector(ExtendActionLayer::onCallBack3), (void *)2); 12 flight->runAction(CCSequence::actions(action1, actionF, action2, NULL)); 13 }
4.CCCallFuncO
调用函数,并传递一个CCObject指针作为参数。这个似乎不太常用,资料比较少,以后再深入。