|
cocos2d-x
2.1.1
|
CCParticleBatchNode is like a batch node: if it contains children, it will draw them in 1 single OpenGL call (often known as "batch draw"). More...
#include <CCParticleBatchNode.h>
Public Member Functions | |
| CCParticleBatchNode () | |
| virtual | ~CCParticleBatchNode () |
| bool | initWithTexture (CCTexture2D *tex, unsigned int capacity) |
| initializes the particle system with CCTexture2D, a capacity of particles | |
| bool | initWithFile (const char *fileImage, unsigned int capacity) |
| initializes the particle system with the name of a file on disk (for a list of supported formats look at the CCTexture2D class), a capacity of particles | |
| virtual void | addChild (CCNode *child) |
| Add a child into the CCParticleBatchNode. | |
| virtual void | addChild (CCNode *child, int zOrder) |
| Adds a child to the container with a z-order. | |
| virtual void | addChild (CCNode *child, int zOrder, int tag) |
| Adds a child to the container with z order and tag. | |
| void | insertChild (CCParticleSystem *pSystem, unsigned int index) |
| Inserts a child into the CCParticleBatchNode. | |
| virtual void | removeChild (CCNode *child, bool cleanup) |
| remove child from the CCParticleBatchNode | |
| virtual void | reorderChild (CCNode *child, int zOrder) |
| Reorders a child according to a new z value. | |
| void | removeChildAtIndex (unsigned int index, bool doCleanup) |
| void | removeAllChildrenWithCleanup (bool doCleanup) |
| Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. | |
| void | disableParticle (unsigned int particleIndex) |
| disables a particle by inserting a 0'd quad into the texture atlas | |
| virtual void | draw (void) |
| Override this method to draw your own node. | |
| virtual CCTexture2D * | getTexture (void) |
| Returns the currently used texture. | |
| virtual void | setTexture (CCTexture2D *texture) |
| Sets a new texuture. | |
| virtual void | setBlendFunc (ccBlendFunc blendFunc) |
| Sets the source blending function. | |
| virtual ccBlendFunc | getBlendFunc (void) |
| Returns the blending function that is currently being used. | |
| void | visit () |
| Visits this node's children and draw them recursively. | |
Public Member Functions inherited from CCNode | |
| virtual CCCamera * | getCamera () |
| Returns a camera object that lets you move the node using a gluLookAt. | |
| virtual bool | isRunning () |
| Returns whether or not the node accepts event callbacks. | |
| virtual void | cleanup (void) |
| Stops all running actions and schedulers. | |
| CCRect | boundingBox (void) |
| Returns a "local" axis aligned bounding box of the node. | |
| virtual void | setZOrder (int zOrder) |
| Sets the Z order which stands for the drawing order, and reorder this node in its parent's children array. | |
| virtual void | _setZOrder (int z) |
| Sets the z order which stands for the drawing order. | |
| virtual int | getZOrder () |
| Gets the Z order of this node. | |
| virtual void | setVertexZ (float vertexZ) |
| Sets the real OpenGL Z vertex. | |
| virtual float | getVertexZ () |
| Gets OpenGL Z vertex of this node. | |
| virtual void | setScaleX (float fScaleX) |
| Changes the scale factor on X axis of this node. | |
| virtual float | getScaleX () |
| Returns the scale factor on X axis of this node. | |
| virtual void | setScaleY (float fScaleY) |
| Changes the scale factor on Y axis of this node. | |
| virtual float | getScaleY () |
| Returns the scale factor on Y axis of this node. | |
| virtual void | setScale (float scale) |
| Changes both X and Y scale factor of the node. | |
| virtual float | getScale () |
| Gets the scale factor of the node, when X and Y have the same scale factor. | |
| virtual void | setPosition (const CCPoint &position) |
| Changes the position (x,y) of the node in OpenGL coordinates. | |
| virtual const CCPoint & | getPosition () |
| Gets the position (x,y) of the node in OpenGL coordinates. | |
| void | setPosition (float x, float y) |
| Sets position in a more efficient way. | |
| void | getPosition (float *x, float *y) |
| Gets position in a more efficient way, returns two number instead of a CCPoint object. | |
| void | setPositionX (float x) |
| Gets/Sets x or y coordinate individually for position. | |
| float | getPositionX (void) |
| void | setPositionY (float y) |
| float | getPositionY (void) |
| virtual void | setSkewX (float fSkewX) |
| Changes the X skew angle of the node in degrees. | |
| virtual float | getSkewX () |
| Returns the X skew angle of the node in degrees. | |
| virtual void | setSkewY (float fSkewY) |
| Changes the Y skew angle of the node in degrees. | |
| virtual float | getSkewY () |
| Returns the Y skew angle of the node in degrees. | |
| virtual void | setAnchorPoint (const CCPoint &anchorPoint) |
| Sets the anchor point in percent. | |
| virtual const CCPoint & | getAnchorPoint () |
| Returns the anchor point in percent. | |
| virtual const CCPoint & | getAnchorPointInPoints () |
| Returns the anchorPoint in absolute pixels. | |
| virtual void | setContentSize (const CCSize &contentSize) |
| Sets the untransformed size of the node. | |
| virtual const CCSize & | getContentSize () |
| Returns the untransformed size of the node. | |
| virtual void | setVisible (bool visible) |
| Sets whether the node is visible. | |
| virtual bool | isVisible () |
| Determines if the node is visible. | |
| virtual void | setRotation (float fRotation) |
| Sets the rotation (angle) of the node in degrees. | |
| virtual float | getRotation () |
| Returns the rotation of the node in degrees. | |
| virtual void | setRotationX (float fRotaionX) |
| Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. | |
| virtual float | getRotationX () |
| Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. | |
| virtual void | setRotationY (float fRotationY) |
| Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. | |
| virtual float | getRotationY () |
| Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. | |
| virtual void | setOrderOfArrival (unsigned int uOrderOfArrival) |
| Sets the arrival order when this node has a same ZOrder with other children. | |
| virtual unsigned int | getOrderOfArrival () |
| Returns the arrival order, indecates which children is added previously. | |
| virtual void | setGLServerState (ccGLServerState glServerState) |
| Sets the state of OpenGL server side. | |
| virtual ccGLServerState | getGLServerState () |
| Returns the state of OpenGL server side. | |
| virtual void | ignoreAnchorPointForPosition (bool ignore) |
| Sets whether the anchor point will be (0,0) when you position this node. | |
| virtual bool | isIgnoreAnchorPointForPosition () |
| Gets whether the anchor point will be (0,0) when you position this node. | |
| CCNode * | getChildByTag (int tag) |
| Gets a child from the container with its tag. | |
| virtual CCArray * | getChildren () |
| Return an array of children. | |
| unsigned int | getChildrenCount (void) |
| Get the amount of children. | |
| virtual void | setParent (CCNode *parent) |
| Sets the parent node. | |
| virtual CCNode * | getParent () |
| Returns a pointer to the parent node. | |
| virtual void | removeFromParent () |
| Removes this node itself from its parent node with a cleanup. | |
| virtual void | removeFromParentAndCleanup (bool cleanup) |
| Removes this node itself from its parent node. | |
| virtual void | removeChild (CCNode *child) |
| Removes a child from the container with a cleanup. | |
| virtual void | removeChildByTag (int tag) |
| Removes a child from the container by tag value with a cleanup. | |
| virtual void | removeChildByTag (int tag, bool cleanup) |
| Removes a child from the container by tag value. | |
| virtual void | removeAllChildren () |
| Removes all children from the container with a cleanup. | |
| virtual void | sortAllChildren () |
| Sorts the children array once before drawing, instead of every time when a child is added or reordered. | |
| virtual CCGridBase * | getGrid () |
| Returns a grid object that is used when applying effects. | |
| virtual void | setGrid (CCGridBase *pGrid) |
| Changes a grid object that is used when applying effects. | |
| virtual int | getTag () |
| Returns a tag that is used to identify the node easily. | |
| virtual void | setTag (int nTag) |
| Changes the tag that is used to identify the node easily. | |
| virtual void * | getUserData () |
| Returns a custom user data pointer. | |
| virtual void | setUserData (void *pUserData) |
| Sets a custom user data pointer. | |
| virtual CCObject * | getUserObject () |
| Returns a user assigned CCObject. | |
| virtual void | setUserObject (CCObject *pUserObject) |
| Returns a user assigned CCObject. | |
| virtual CCGLProgram * | getShaderProgram () |
| Return the shader program currently used for this node. | |
| virtual void | setShaderProgram (CCGLProgram *pShaderProgram) |
| Sets the shader program for this node. | |
| virtual void | registerScriptHandler (int handler) |
| Registers a script function that will be called in onEnter() & onExit() seires functions. | |
| virtual void | unregisterScriptHandler (void) |
| Unregisters a script function that will be called in onEnter() & onExit() series functions. | |
| int | getScriptHandler () |
| Gets script handler for onEnter/onExit event. | |
| void | scheduleUpdateWithPriorityLua (int nHandler, int priority) |
| Schedules for lua script. | |
| virtual void | onEnter () |
| Event callback that is invoked every time when CCNode enters the 'stage'. | |
| virtual void | onEnterTransitionDidFinish () |
| Event callback that is invoked when the CCNode enters in the 'stage'. | |
| virtual void | onExit () |
| Event callback that is invoked every time the CCNode leaves the 'stage'. | |
| virtual void | onExitTransitionDidStart () |
| Event callback that is called every time the CCNode leaves the 'stage'. | |
| virtual void | setActionManager (CCActionManager *actionManager) |
| Sets the CCActionManager object that is used by all actions. | |
| virtual CCActionManager * | getActionManager () |
| Gets the CCActionManager object that is used by all actions. | |
| CCAction * | runAction (CCAction *action) |
| Executes an action, and returns the action that is executed. | |
| void | stopAllActions (void) |
| Stops and removes all actions from the running action list . | |
| void | stopAction (CCAction *action) |
| Stops and removes an action from the running action list. | |
| void | stopActionByTag (int tag) |
| Removes an action from the running action list by its tag. | |
| CCAction * | getActionByTag (int tag) |
| Gets an action from the running action list by its tag. | |
| unsigned int | numberOfRunningActions (void) |
| Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). | |
| virtual void | setScheduler (CCScheduler *scheduler) |
| Sets a CCScheduler object that is used to schedule all "updates" and timers. | |
| virtual CCScheduler * | getScheduler () |
| Gets a CCSheduler object. | |
| bool | isScheduled (SEL_SCHEDULE selector) |
| Checks whether a selector is scheduled. | |
| void | scheduleUpdate (void) |
| Schedules the "update" method. | |
| void | scheduleUpdateWithPriority (int priority) |
| Schedules the "update" method with a custom priority. | |
| void | unscheduleUpdate (void) |
| void | schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay) |
| Schedules a custom selector. | |
| void | schedule (SEL_SCHEDULE selector, float interval) |
| Schedules a custom selector with an interval time in seconds. | |
| void | scheduleOnce (SEL_SCHEDULE selector, float delay) |
| Schedules a selector that runs only once, with a delay of 0 or larger. | |
| void | schedule (SEL_SCHEDULE selector) |
| Schedules a custom selector, the scheduled selector will be ticked every frame. | |
| void | unschedule (SEL_SCHEDULE selector) |
| Unschedules a custom selector. | |
| void | unscheduleAllSelectors (void) |
| Unschedule all scheduled selectors: custom selectors, and the 'update' selector. | |
| void | resumeSchedulerAndActions (void) |
| Resumes all scheduled selectors and actions. | |
| void | pauseSchedulerAndActions (void) |
| Pauses all scheduled selectors and actions. | |
| virtual void | update (float delta) |
| void | transform (void) |
| Performs OpenGL view-matrix transformation based on position, scale, rotation and other attributes. | |
| void | transformAncestors (void) |
| Performs OpenGL view-matrix transformation of it's ancestors. | |
| virtual void | updateTransform (void) |
| Calls children's updateTransform() method recursively. | |
| virtual CCAffineTransform | nodeToParentTransform (void) |
| Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. | |
| virtual CCAffineTransform | parentToNodeTransform (void) |
| Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. | |
| virtual CCAffineTransform | nodeToWorldTransform (void) |
| Returns the world affine transform matrix. | |
| virtual CCAffineTransform | worldToNodeTransform (void) |
| Returns the inverse world affine transform matrix. | |
| CCPoint | convertToNodeSpace (const CCPoint &worldPoint) |
| Converts a Point to node (local) space coordinates. | |
| CCPoint | convertToWorldSpace (const CCPoint &nodePoint) |
| Converts a Point to world space coordinates. | |
| CCPoint | convertToNodeSpaceAR (const CCPoint &worldPoint) |
| Converts a Point to node (local) space coordinates. | |
| CCPoint | convertToWorldSpaceAR (const CCPoint &nodePoint) |
| Converts a local Point to world space coordinates.The result is in Points. | |
| CCPoint | convertTouchToNodeSpace (CCTouch *touch) |
| convenience methods which take a CCTouch instead of CCPoint | |
| CCPoint | convertTouchToNodeSpaceAR (CCTouch *touch) |
| converts a CCTouch (world coordinates) into a local coordinate. | |
| CCNode (void) | |
| Default constructor. | |
| virtual | ~CCNode (void) |
| Default destructor. | |
| const char * | description (void) |
| Gets the description string. | |
Public Member Functions inherited from CCObject | |
| CCObject (void) | |
| virtual | ~CCObject (void) |
| void | release (void) |
| void | retain (void) |
| CCObject * | autorelease (void) |
| CCObject * | copy (void) |
| bool | isSingleReference (void) |
| unsigned int | retainCount (void) |
| virtual bool | isEqual (const CCObject *pObject) |
Public Member Functions inherited from CCCopying | |
| virtual CCObject * | copyWithZone (CCZone *pZone) |
Static Public Member Functions | |
| static CCParticleBatchNode * | createWithTexture (CCTexture2D *tex, unsigned int capacity=500) |
| initializes the particle system with CCTexture2D, a capacity of particles, which particle system to use | |
| static CCParticleBatchNode * | create (const char *fileImage, unsigned int capacity=500) |
| initializes the particle system with the name of a file on disk (for a list of supported formats look at the CCTexture2D class), a capacity of particles | |
Static Public Member Functions inherited from CCNode | |
| static CCNode * | create (void) |
| Allocates and initializes a node. | |
Public Attributes | |
| virtual CCTextureAtlas * | getTextureAtlas (void)\n\n public |
| getTextureAtlas | |
Protected Attributes | |
| CCTextureAtlas * | m_pTextureAtlas |
| the texture atlas used for drawing the quads | |
Protected Attributes inherited from CCNode | |
| float | m_fRotationX |
| rotation angle on x-axis | |
| float | m_fRotationY |
| rotation angle on y-axis | |
| float | m_fScaleX |
| scaling factor on x-axis | |
| float | m_fScaleY |
| scaling factor on y-axis | |
| float | m_fVertexZ |
| OpenGL real Z vertex. | |
| CCPoint | m_obPosition |
| position of the node | |
| float | m_fSkewX |
| skew angle on x-axis | |
| float | m_fSkewY |
| skew angle on y-axis | |
| CCPoint | m_obAnchorPointInPoints |
| anchor point in points | |
| CCPoint | m_obAnchorPoint |
| anchor point normalized (NOT in points) | |
| CCSize | m_obContentSize |
| untransformed size of the node | |
| CCAffineTransform | m_sTransform |
| transform | |
| CCAffineTransform | m_sInverse |
| transform | |
| CCCamera * | m_pCamera |
| a camera | |
| CCGridBase * | m_pGrid |
| a grid | |
| int | m_nZOrder |
| z-order value that affects the draw order | |
| CCArray * | m_pChildren |
| array of children nodes | |
| CCNode * | m_pParent |
| weak reference to parent node | |
| int | m_nTag |
| a tag. Can be any number you assigned just to identify this node | |
| void * | m_pUserData |
| A user assingned void pointer, Can be point to any cpp object. | |
| CCObject * | m_pUserObject |
| A user assigned CCObject. | |
| CCGLProgram * | m_pShaderProgram |
| OpenGL shader. | |
| ccGLServerState | m_eGLServerState |
| OpenGL servier side state. | |
| unsigned int | m_uOrderOfArrival |
| used to preserve sequence while sorting children with the same zOrder | |
| CCScheduler * | m_pScheduler |
| scheduler used to schedule timers and updates | |
| CCActionManager * | m_pActionManager |
| a pointer to ActionManager singleton, which is used to handle all the actions | |
| bool | m_bRunning |
| is running | |
| bool | m_bTransformDirty |
| transform dirty flag | |
| bool | m_bInverseDirty |
| transform dirty flag | |
| bool | m_bVisible |
| is this node visible | |
| bool | m_bIgnoreAnchorPointForPosition |
| true if the Anchor Point will be (0,0) when you position the CCNode, false otherwise. | |
| bool | m_bReorderChildDirty |
| children order dirty flag | |
| int | m_nScriptHandler |
| script handler for onEnter() & onExit(), used in Javascript binding and Lua binding. | |
| int | m_nUpdateScriptHandler |
| script handler for update() callback per frame, which is invoked from lua & javascript. | |
| ccScriptType | m_eScriptType |
| type of script binding, lua or javascript | |
Protected Attributes inherited from CCObject | |
| unsigned int | m_uReference |
| unsigned int | m_uAutoReleaseCount |
Detailed Description
CCParticleBatchNode is like a batch node: if it contains children, it will draw them in 1 single OpenGL call (often known as "batch draw").
A CCParticleBatchNode can reference one and only one texture (one image file, one texture atlas). Only the CCParticleSystems that are contained in that texture can be added to the CCSpriteBatchNode. All CCParticleSystems added to a CCSpriteBatchNode are drawn in one OpenGL ES draw call. If the CCParticleSystems are not added to a CCParticleBatchNode then an OpenGL ES draw call will be needed for each one, which is less efficient.
Limitations:
- At the moment only CCParticleSystemQuad is supported
- All systems need to be drawn with the same parameters, blend function, aliasing, texture
Most efficient usage
- Initialize the ParticleBatchNode with the texture and enough capacity for all the particle systems
- Initialize all particle systems and add them as child to the batch node
- Since
- v1.1
Constructor & Destructor Documentation
|
virtual |
Member Function Documentation
|
virtual |
Add a child into the CCParticleBatchNode.
Reimplemented from CCNode.
|
virtual |
Adds a child to the container with a z-order.
If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
- Parameters
-
child A child node zOrder Z order for drawing priority. Please refer to setZOrder(int)
Reimplemented from CCNode.
|
virtual |
Adds a child to the container with z order and tag.
If the child is added to a 'running' node, then 'onEnter' and 'onEnterTransitionDidFinish' will be called immediately.
- Parameters
-
child A child node zOrder Z order for drawing priority. Please refer to setZOrder(int) tag A interger to identify the node easily. Please refer to setTag(int)
Reimplemented from CCNode.
|
static |
initializes the particle system with the name of a file on disk (for a list of supported formats look at the CCTexture2D class), a capacity of particles
|
static |
initializes the particle system with CCTexture2D, a capacity of particles, which particle system to use
| void disableParticle | ( | unsigned int | particleIndex | ) |
disables a particle by inserting a 0'd quad into the texture atlas
|
virtual |
Override this method to draw your own node.
The following GL states will be enabled by default:
- glEnableClientState(GL_VERTEX_ARRAY);
- glEnableClientState(GL_COLOR_ARRAY);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glEnable(GL_TEXTURE_2D); AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node.
Reimplemented from CCNode.
|
virtual |
Returns the blending function that is currently being used.
- Returns
- A ccBlendFunc structure with source and destination factor which specified pixel arithmetic.
Implements CCBlendProtocol.
|
virtual |
Returns the currently used texture.
- Returns
- The texture that is currenlty being used.
Implements CCTextureProtocol.
| bool initWithFile | ( | const char * | fileImage, |
| unsigned int | capacity | ||
| ) |
initializes the particle system with the name of a file on disk (for a list of supported formats look at the CCTexture2D class), a capacity of particles
| bool initWithTexture | ( | CCTexture2D * | tex, |
| unsigned int | capacity | ||
| ) |
initializes the particle system with CCTexture2D, a capacity of particles
| void insertChild | ( | CCParticleSystem * | pSystem, |
| unsigned int | index | ||
| ) |
Inserts a child into the CCParticleBatchNode.
|
virtual |
Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.
- Parameters
-
cleanup true if all running actions on all children nodes should be cleanup, false oterwise.
Reimplemented from CCNode.
|
virtual |
remove child from the CCParticleBatchNode
Reimplemented from CCNode.
| void removeChildAtIndex | ( | unsigned int | index, |
| bool | doCleanup | ||
| ) |
|
virtual |
Reorders a child according to a new z value.
- Parameters
-
child An already added child node. It MUST be already added. zOrder Z order for drawing priority. Please refer to setZOrder(int)
Reimplemented from CCNode.
|
virtual |
Sets the source blending function.
- Parameters
-
blendFunc A structure with source and destination factor to specify pixel arithmetic, e.g. {GL_ONE, GL_ONE}, {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA}.
Implements CCBlendProtocol.
|
virtual |
Sets a new texuture.
It will be retained.
- Parameters
-
texture A valid CCTexture2D object, which will be applied to this sprite object.
Implements CCTextureProtocol.
|
virtual |
Visits this node's children and draw them recursively.
Reimplemented from CCNode.
Member Data Documentation
| virtual CCTextureAtlas* getTextureAtlas(void)\n\n public |
getTextureAtlas
setTextureAtlas
|
protected |
the texture atlas used for drawing the quads
The documentation for this class was generated from the following file:
- /Users/zhangkoumyou/SourceCode/cocos2d-x/cocos2dx/particle_nodes/CCParticleBatchNode.h

Public Member Functions inherited from 