cocos2d-x学习笔记13:动作4:其他动作
2012-10-23 15:50
218 查看
第一部分:CCFollow跟随动作
CCFollow动作,可以让一个节点跟随另一个节点做位移。
他有两个静态工厂方法,后者可以设置一个跟随范围,离开范围就不再跟随。
CCFollow经常用来设置layer跟随sprite,可以实现类似摄像机跟拍的效果。cocos2d-x中的tests里,有类似的例子,代码如下:
[align=left]第二部分:CCDelayTime延时动作[/align]
[align=left]CCDelayTime是一个延时若干秒的动作,最常见的用法就是在一个CCSequence序列动作中,打入若干延时时间,让动作的执行速度慢下来,不至于眼花缭乱,让人反应不过来。[/align]
[align=left] [/align]
cocos2d-x中的tests里,有类似的例子,代码如下:
[align=left]第三部分:CCProgressFromTo与CCProgressTo 进度动作[/align]
[align=left]进度动作,也是一种从无到有逐渐绘制的动作,和淡入淡出的作用类似。[/align]
[align=left]注意进度动作的执行节点为CCProgressTimer,而非我们常用的CCSprite。我们在使用进度动作时,需要指定绘制类型。[/align]
[align=left] [/align]
[align=left]cocos2d-x一种提供了6种类型的枚举值:[/align]
[align=left] [/align]
[align=left]cocos2d-x中的tests里,有全部的进度动作的例子,其中按时针绘制的例子代码如下:[/align]
[align=left]第四部分:CCGridAction 网格动作家族[/align]
[align=left]网格动作,是一种特殊的变换效果,类似于特效,可以实现全屏幕的,翻转,抖动,震荡,水波纹等。CCGridAction是所有网格动作的基类,他有两个派生类[/align]
[align=left]CCTiledGrid3DAction:基于Tiled的网格动作[/align]
[align=left]CCGrid3DAction:普通网格动作[/align]
[align=left]这些动作的相关例子,都在cocos2d-x的tests中的EffectsTest里。因为用法简单,但是数量庞大,又不是特别常用,而且效果用语言很难准确描述,就不赘述了。直接看代码就行。[/align]
CCFollow动作,可以让一个节点跟随另一个节点做位移。
他有两个静态工厂方法,后者可以设置一个跟随范围,离开范围就不再跟随。
bool initWithTarget (CCNode *pFollowedNode) bool initWithTarget (CCNode *pFollowedNode, const CCRect &rect)
CCFollow经常用来设置layer跟随sprite,可以实现类似摄像机跟拍的效果。cocos2d-x中的tests里,有类似的例子,代码如下:
void ActionFollow::onEnter() { ActionsDemo::onEnter(); centerSprites(1); CCSize s = CCDirector::sharedDirector()->getWinSize(); m_grossini->setPosition(CCPointMake(-200, s.height / 2)); CCActionInterval* move = CCMoveBy::actionWithDuration(2, CCPointMake(s.width * 3, 0)); CCActionInterval* move_back = move->reverse(); CCFiniteTimeAction* seq = CCSequence::actions(move, move_back, NULL); CCAction* rep = CCRepeatForever::actionWithAction((CCActionInterval*)seq); m_grossini->runAction(rep); this->runAction(CCFollow::actionWithTarget(m_grossini, CCRectMake(0, 0, s.width * 2 - 100, s.height))); }
[align=left]第二部分:CCDelayTime延时动作[/align]
[align=left]CCDelayTime是一个延时若干秒的动作,最常见的用法就是在一个CCSequence序列动作中,打入若干延时时间,让动作的执行速度慢下来,不至于眼花缭乱,让人反应不过来。[/align]
[align=left] [/align]
cocos2d-x中的tests里,有类似的例子,代码如下:
void ActionDelayTime::onEnter() { ActionsDemo::onEnter(); alignSpritesLeft(1); CCActionInterval* move = CCMoveBy::actionWithDuration(1, CCPointMake(150,0)); CCFiniteTimeAction* action = CCSequence::actions( move, CCDelayTime::actionWithDuration(2), move, NULL); m_grossini->runAction(action); }
[align=left]第三部分:CCProgressFromTo与CCProgressTo 进度动作[/align]
[align=left]进度动作,也是一种从无到有逐渐绘制的动作,和淡入淡出的作用类似。[/align]
[align=left]注意进度动作的执行节点为CCProgressTimer,而非我们常用的CCSprite。我们在使用进度动作时,需要指定绘制类型。[/align]
[align=left] [/align]
[align=left]cocos2d-x一种提供了6种类型的枚举值:[/align]
typedef enum { /// Radial Counter-Clockwise 逆时针 kCCProgressTimerTypeRadialCCW, /// Radial ClockWise 顺时针 kCCProgressTimerTypeRadialCW, /// Horizontal Left-Right 从左往右 kCCProgressTimerTypeHorizontalBarLR, /// Horizontal Right-Left 从右往左 kCCProgressTimerTypeHorizontalBarRL, /// Vertical Bottom-top 从下往上 kCCProgressTimerTypeVerticalBarBT, /// Vertical Top-Bottom 从上往下 kCCProgressTimerTypeVerticalBarTB, } CCProgressTimerType;
[align=left] [/align]
[align=left]cocos2d-x中的tests里,有全部的进度动作的例子,其中按时针绘制的例子代码如下:[/align]
void SpriteProgressToHorizontal::onEnter() { SpriteDemo::onEnter(); CCSize s = CCDirector::sharedDirector()->getWinSize(); CCProgressTo *to1 = CCProgressTo::actionWithDuration(2, 100); CCProgressTo *to2 = CCProgressTo::actionWithDuration(2, 100); CCProgressTimer *left = CCProgressTimer::progressWithFile(s_pPathSister1); left->setType( kCCProgressTimerTypeHorizontalBarLR );//设置动作类型 addChild(left); left->setPosition(CCPointMake(100, s.height/2)); left->runAction( CCRepeatForever::actionWithAction(to1)); CCProgressTimer *right = CCProgressTimer::progressWithFile(s_pPathSister2); right->setType( kCCProgressTimerTypeHorizontalBarRL );//设置动作类型 addChild(right); right->setPosition(CCPointMake(s.width-100, s.height/2)); right->runAction( CCRepeatForever::actionWithAction(to2)); }
[align=left]第四部分:CCGridAction 网格动作家族[/align]
[align=left]网格动作,是一种特殊的变换效果,类似于特效,可以实现全屏幕的,翻转,抖动,震荡,水波纹等。CCGridAction是所有网格动作的基类,他有两个派生类[/align]
[align=left]CCTiledGrid3DAction:基于Tiled的网格动作[/align]
[align=left]CCGrid3DAction:普通网格动作[/align]
[align=left]这些动作的相关例子,都在cocos2d-x的tests中的EffectsTest里。因为用法简单,但是数量庞大,又不是特别常用,而且效果用语言很难准确描述,就不赘述了。直接看代码就行。[/align]
相关文章推荐
- (转)cocos2d-x学习笔记13:动作4:其他动作
- cocos2d-x学习笔记13:动作4:其他动作
- 小for的Cocos2d-x学习笔记与感悟13之从新建项目到打包成APK(Cocos2d-x 2.2.1)
- cocos2d-x学习笔记10:动作3:补间动作
- Cocos2d-x学习笔记(二十一)之 动作管理类CCActionManager
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环&主角添加动作
- Cocoa学习笔记 Cocos2d 各种动作介绍 (上)
- cocos2d-x学习笔记 动作 CCCallFunc家族(回调函数包装器)
- cocos2d-x学习笔记 动作 CCCallFunc家族(回调函数包装器)
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环&主角加入动作
- Cocos2d-x学习笔记(15)(Action动作)
- Cocos2d-x学习笔记(3) - 动作
- Cocos2d-X 学习笔记 13 cocos2dx ios 消息推送
- Cocos2d-x学习笔记(13)(draw绘制)
- Cocos2D-X2.2.3学习笔记12(瞬时动作)
- cocos2d-x学习笔记-CCAction(动作)
- 【Cocos2d-X开发学习笔记】第12期:动作类CCAction的详细讲解
- cocos2d-x学习笔记-CCAction(动作)
- 五毛的cocos2d-x学习笔记05-场景与场景动画,动作
- 【Cocos2d-html5游戏引擎学习笔记(13)】ProgressAction进度计时器