CCActionManager

当CCnode执行runAction的时候,runAction会调用动作管理类的addAction方法将它自己执行的动作传递给动作管理类,动作管理类再将动作添加到自己的动作序列中。

  动过管理类通过定时刷新自己的update方法,在update方法中调用自己的动作序列中的每一个动作的step,这些step根据自身的完成进度去update或是结束行为。

  动作管理单例驱动每一个动作去更新自己的逻辑,而runAction只是将行为对象添加到动作管理类的待执行队列中去。当节点被清除或者行为结束时,动作管理类将会自动将动作从队列中删除,不需要程序员管理。

  一般情况不需要使用动作管理类来管理动作,一般情况都是使用CCNode的stopAction,stopActionByTag,stopAllActions等函数来管理,但是有两种情况需要使用动作管理类来管理:

     1、动作的执行者不是同一个节点;

     2、需要暂停/重启时;

时间: 2024-09-28 21:59:54

CCActionManager的相关文章

节点和坐标系

CCNode定义了一个可绘制对象的通用特性,包括位置.缩放.是否可见.旋转角度等. 节点功能包括:包含其他CCNode对象.接受各种事件与回调函数.运行动作. 坐标系: 绘图坐标系:与OpenGL采用的坐标系相同.以左下角为原点,向右为x轴正方向,向上为y轴正方向. 纹理坐标系:以左上角为原点,向右为x轴正方向,向下为y轴正方向. CCSprite相关的绘图属性: CCRect ContentSize : 获取或设置此节点的内容大小.任何节点都需要确定它的内容大小,以便进行图形变换.对于精灵来说

初学Cocos2dx

初学cocos2dx Cocos2dx 中的主要概念包括:应用.导演.场景.层.精灵.动画.动作. Cocos2dx里面的主要类 1.CCObject Object Object Object 是cocos2dx的主要基类.主要提供了引用计数的功能. 2.CCPoolManager CCPoolManager CCPoolManager CCPoolManager 是个单体类,负责管理多个垃圾回收器 CCAutoreleasePool 在CCObject::Autorelease方法中单体CCP

Cocos2d-x动画加速与减速

动画是游戏的必然要素之一,在整个游戏过程中,又有着加速.减速动画的需求.以塔防为例子,布塔的时候希望能够将游戏减速,布好塔后,则希望能将游戏加速:当某个怪被冰冻后,移动速度减缓,而其他怪的移动速度不变.cocos2d-x引擎为我们提供了很强大的接口 1)实现全局的加速.减速. 通过设置Scheduler的timeScale,可以实现全局的加.减速.代码非常简单: CCScheduler* pScheduler = CCDirector::sharedDirector()->getSchedule

Cocos2d-x 3.4 Action管理(ActionManager)总结

Cocos2d-x Action管理 动作管理类CCActionManager是一个管理所有动作的单例,工作原理是:当CCNode执行runAction时,该函数会把动作通过动作管理类的addAction函数将对象传递给CCActionManager的单例,该实例再把这个动作添加到自己的动作序列中. 动作管理单例通过定时刷新自己的update方法,在这个方法中去调用行为序列中每个动作的step(暂停的行为不会update),这些step方法再根据自身的完成进度去update或是结束行为. 实际上

cocos2d-x动作原理

首先CCAction是所有动作的基类,如下图继承关系: 那么来看看CCAction的定义: class CC_DLL CCAction : public CCObject { public: CCAction(void); virtual ~CCAction(void); const char* description(); virtual CCObject* copyWithZone(CCZone *pZone); //! return true if the action has finis

Cocos2d-x中的坐标系

绘图坐标系.它是最常见的坐标系,与OpenGL采用的坐标系相同,以左下角为原点,向右为x轴正方向,向上为y轴正方 向,如图 3-1 所示.在 Cocos2d-x 中,一切绘图相关的操作都使用绘图坐标系,如游戏元素中的 Position 和 AnchorPoint 等属性. 纹理坐标系.纹理坐标系以左上角为原点,向右为x轴正方向,向下为y轴正方向,如图3-2所示.在Cocos2d-x中,只 有从纹理中截取部分矩形时才使用这个坐标系,如 CCSprite 的 TextureRect 属性. 简单地接

cocos2d

#ifndef __COCOS2D_H__ #define __COCOS2D_H__ // 0x00 HI ME LO // 00   02 01 00 #define COCOS2D_VERSION 0x00020100 // // all cocos2d include files // #include "ccConfig.h" // actions #include "actions/CCAction.h" #include "actions/C

Cocos2D-Android-1之源码详解:2.ActionManagerTest

//现在我们开始注释,他的第一个activity package org.cocos2d.tests; import org.cocos2d.actions.CCActionManager; import org.cocos2d.actions.base.CCAction; import org.cocos2d.actions.instant.CCCallFunc; import org.cocos2d.actions.instant.CCCallFuncN; import org.cocos2

Cocos2d-x程序在Android下的启动过程

注:原文也在公司内部论坛上发了 本文通过分析cocos2d-x(分析版本为cocos2d-x-2.2.1)自身提供的示例程序HelloLua(在目录$(sourcedir)\samples\Lua\HelloLua\下)来分析cocos2d-x的在android平台下的具体启动过程. 我们知道android平台的游戏是从一个Activity开始的.HelloLua的启动Activity是在文件HelloLua.java中定义的,相关代码如下: public class HelloLua exte