`
fireDragonpzy
  • 浏览: 462577 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

cocos2d-x action动作整理集合(二)

阅读更多
第一部分:CCFollow跟随动作
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))); 
} 


第二部分:CCDelayTime延时动作
CCDelayTime是一个延时若干秒的动作,最常见的用法就是在一个CCSequence序列动作中,打入若干延时时间,让动作的执行速度慢下来,不至于眼花缭乱,让人反应不过来。
 
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); 
} 


第三部分:CCProgressFromTo与CCProgressTo 进度动作

进度动作,也是一种从无到有逐渐绘制的动作,和淡入淡出的作用类似。

注意进度动作的执行节点为CCProgressTimer,而非我们常用的CCSprite。我们在使用进度动作时,需要指定绘制类型。
 
cocos2d-x一种提供了6种类型的枚举值:
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; 
 
cocos2d-x中的tests里,有全部的进度动作的例子,其中按时针绘制的例子代码如下:
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)); 
} 

第四部分:CCGridAction 网格动作家族

网格动作,是一种特殊的变换效果,类似于特效,可以实现全屏幕的,翻转,抖动,震荡,水波纹等。CCGridAction是所有网格动作的基类,他有两个派生类
CCTiledGrid3DAction:基于Tiled的网格动作
CCGrid3DAction:普通网格动作


摘自:http://4137613.blog.51cto.com/4127613/767613
分享到:
评论

相关推荐

    cocos2d-x 2.x action集合(详细注释分类)

    在这个"cocos2d-x 2.x action集合(详细注释分类)"的资源中,你将深入学习到如何使用动作(Action)来控制游戏对象的行为,从而实现各种动态效果。 1. **动作(Action)基础**: 动作是Cocos2d-x中改变节点(Node)...

    cocos2dx_study.rar_cocos2d-x_cocos2d-x实例_cocos2dx

    本资料集合旨在为初学者提供一个全面的cocos2d-x学习路径,从环境搭建到实际项目开发,涵盖了所有必要的知识点。 一、环境配置 在开始cocos2d-x游戏开发之前,你需要先安装和配置一系列的开发工具。这包括但不限于...

    Cocos2d-x离线文档

    6. **动作(Action)**:Cocos2d-x的动作系统允许开发者定义和组合各种动作,如移动、旋转、淡入淡出等,使精灵或节点的行为更加生动。 7. **粒子系统(ParticleSystem)**:Cocos2d-x提供了粒子系统,用于创建各种...

    cocos2d-x完整RPG游戏源代码

    1. **Cocos2d-x框架**:Cocos2d-x提供了丰富的2D图形渲染功能,包括精灵(Sprite)、场景(Scene)、层(Layer)、动作(Action)等基本元素。它还有物理引擎、粒子系统、动画工具等模块,使得开发者能够方便地创建...

    cocos2d-x2.2.2 API帮助文档

    《cocos2d-x2.2.2 API帮助文档》是针对游戏开发人员的重要参考资料,主要涵盖cocos2d-x 2.2.2版本的API接口和功能介绍。cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,支持多种平台,包括iOS、Android、...

    cocos2d-x 2.1.0 文档

    Cocos2d-x是一个开源的游戏开发框架,主要应用于2D游戏、实时应用和互动教育软件的开发。2.1.0版本是该框架的一个重要里程碑,它提供了许多更新和改进,使得开发者能够更加高效地创建游戏和应用程序。文档是开发者...

    coco2d-x基础资料-doc

    总之,"coco2d-x基础资料-doc"这个压缩包很可能是对Cocos2d-x框架的基本介绍、教程、示例代码或API文档等内容的集合,对于初学者来说是非常宝贵的参考资料,可以帮助他们快速理解和掌握Cocos2d-x的开发技能。...

    精通Cocos2d-x游戏开发(进阶卷)源代码

    《精通Cocos2d-x游戏开发(进阶卷)源代码》是一本深入解析Cocos2d-x游戏引擎开发的专业书籍的源代码集合。Cocos2d-x是一款跨平台、开源的游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书的进阶...

    cocos2d _切水果

    这个过程涉及到Cocos2d-iPhone的事件处理机制,包括触摸事件(Touch Events)和动作调度(Action Scheduler)。我们需要监听触摸事件,当用户触摸屏幕时,根据触摸轨迹生成切割线,并判断是否与水果或炸弹重合。 ...

    知易Cocco2D-iPhone开发教程-07

    4. **动作(Action)与动画(Animation)**:Cocos2D提供了丰富的动作类,如MoveTo、RotateTo等,可以轻松地创建出复杂的动画效果。通过组合动作,可以实现角色的行走、跳跃、攻击等行为。 5. **物理引擎(Physics ...

    cocos2d 知易+源代码

    《cocos2d 知易+源代码》是一份深入探讨cocos2d框架的PDF文档集合,包含从基础到进阶的多个章节,旨在帮助读者掌握这一强大的2D游戏开发工具。cocos2d是一个开源的游戏开发框架,广泛应用于iOS、Android以及Mac OS X...

    cocos2d离线文档 docset格式的

    1. **渲染系统**:Cocos2D提供了一个基于OpenGL的2D渲染引擎,可以创建精灵(Sprite)、层(Layer)、场景(Scene)和动作(Action)。例如,CCSprite用于显示图像,CCLayer作为内容的容器,CCScene作为游戏或应用...

    iphone 开发设计

    - 它提供了场景(Scene)、层(Layer)、精灵(Sprite)、动作(Action)等概念,简化了游戏逻辑的实现。 - 使用Tiled地图编辑器配合Cocos2D可以创建复杂的关卡和场景。 - 支持物理引擎Box2D,实现真实的碰撞检测...

    三款使用cocos2d开发的Android棋盘类游戏

    在Android平台上,Cocos2d是一个非常流行的开源游戏开发框架,它允许开发者使用C++或者 Lua语言进行游戏逻辑编写,并提供了丰富的2D图形渲染、物理引擎、动画效果等功能。本主题将围绕“三款使用cocos2d开发的...

    冒险岛怪物素材

    开发者可以使用Cocos2D提供的API来处理图像资源,创建精灵(Sprite)对象,并设置动作(Action)来播放行走动画。 对于"新建文件夹"和"res"这两个文件或目录,它们可能分别代表了素材的不同分类或者存储结构。"新建...

Global site tag (gtag.js) - Google Analytics