cocos2d-x  2.2.3-gd2.113-rev1ec524e
Loading...
Searching...
No Matches
CCParticleSystem Class Reference

Particle System base class. More...

#include <CCParticleSystem.h>

Inheritance diagram for CCParticleSystem:
[legend]
Collaboration diagram for CCParticleSystem:
[legend]

Public Member Functions

virtual CCParticleBatchNodegetBatchNode (void)
 
virtual void setBatchNode (CCParticleBatchNode *var)
 
virtual unsigned int getParticleCount (void)
 
virtual float getDuration (void)
 
virtual void setDuration (float var)
 
virtual const CCPointgetSourcePosition (void)
 
virtual void setSourcePosition (const CCPoint &var)
 
virtual const CCPointgetPosVar (void)
 
virtual void setPosVar (const CCPoint &var)
 
virtual float getLife (void)
 
virtual void setLife (float var)
 
virtual float getLifeVar (void)
 
virtual void setLifeVar (float var)
 
virtual float getAngle (void)
 
virtual void setAngle (float var)
 
virtual float getAngleVar (void)
 
virtual void setAngleVar (float var)
 
virtual const CCPointgetGravity ()
 
virtual void setGravity (const CCPoint &g)
 
virtual float getSpeed ()
 
virtual void setSpeed (float speed)
 
virtual float getSpeedVar ()
 
virtual void setSpeedVar (float speed)
 
virtual float getTangentialAccel ()
 
virtual void setTangentialAccel (float t)
 
virtual float getTangentialAccelVar ()
 
virtual void setTangentialAccelVar (float t)
 
virtual float getRadialAccel ()
 
virtual void setRadialAccel (float t)
 
virtual float getRadialAccelVar ()
 
virtual void setRadialAccelVar (float t)
 
virtual bool getRotationIsDir ()
 
virtual void setRotationIsDir (bool t)
 
virtual float getStartRadius ()
 
virtual void setStartRadius (float startRadius)
 
virtual float getStartRadiusVar ()
 
virtual void setStartRadiusVar (float startRadiusVar)
 
virtual float getEndRadius ()
 
virtual void setEndRadius (float endRadius)
 
virtual float getEndRadiusVar ()
 
virtual void setEndRadiusVar (float endRadiusVar)
 
virtual float getRotatePerSecond ()
 
virtual void setRotatePerSecond (float degrees)
 
virtual float getRotatePerSecondVar ()
 
virtual void setRotatePerSecondVar (float degrees)
 
virtual void setScale (float s)
 Changes both X and Y scale factor of the node. More...
 
virtual void setRotation (float newRotation)
 Sets the rotation (angle) of the node in degrees. More...
 
virtual void setScaleX (float newScaleX)
 Changes the scale factor on X axis of this node. More...
 
virtual void setScaleY (float newScaleY)
 Changes the scale factor on Y axis of this node. More...
 
virtual bool isActive ()
 
virtual bool isBlendAdditive ()
 
virtual void setBlendAdditive (bool value)
 
virtual float getStartSize (void)
 
virtual void setStartSize (float var)
 
virtual float getStartSizeVar (void)
 
virtual void setStartSizeVar (float var)
 
virtual float getEndSize (void)
 
virtual void setEndSize (float var)
 
virtual float getEndSizeVar (void)
 
virtual void setEndSizeVar (float var)
 
virtual const ccColor4FgetStartColor (void)
 
virtual void setStartColor (const ccColor4F &var)
 
virtual const ccColor4FgetStartColorVar (void)
 
virtual void setStartColorVar (const ccColor4F &var)
 
virtual const ccColor4FgetEndColor (void)
 
virtual void setEndColor (const ccColor4F &var)
 
virtual const ccColor4FgetEndColorVar (void)
 
virtual void setEndColorVar (const ccColor4F &var)
 
virtual float getStartSpin (void)
 
virtual void setStartSpin (float var)
 
virtual float getStartSpinVar (void)
 
virtual void setStartSpinVar (float var)
 
virtual float getEndSpin (void)
 
virtual void setEndSpin (float var)
 
virtual float getEndSpinVar (void)
 
virtual void setEndSpinVar (float var)
 
virtual float getEmissionRate (void)
 
virtual void setEmissionRate (float var)
 
virtual unsigned int getTotalParticles (void)
 
virtual void setTotalParticles (unsigned int var)
 
virtual CCTexture2DgetTexture (void)
 Returns the currently used texture. More...
 
virtual void setTexture (CCTexture2D *var)
 Sets a new texuture. More...
 
virtual ccBlendFunc getBlendFunc (void)
 Returns the blending function that is currently being used. More...
 
virtual void setBlendFunc (ccBlendFunc var)
 Sets the source blending function. More...
 
virtual bool getOpacityModifyRGB (void)
 
virtual void setOpacityModifyRGB (bool var)
 
virtual tCCPositionType getPositionType (void)
 
virtual void setPositionType (tCCPositionType var)
 
virtual bool isAutoRemoveOnFinish ()
 
virtual void setAutoRemoveOnFinish (bool var)
 
virtual int getEmitterMode (void)
 
virtual void setEmitterMode (int var)
 
 CCParticleSystem ()
 ctor More...
 
virtual ~CCParticleSystem ()
 NA NA. More...
 
bool init ()
 initializes a CCParticleSystem More...
 
bool initWithFile (const char *plistFile)
 initializes a CCParticleSystem from a plist file. More...
 
bool initWithDictionary (CCDictionary *dictionary)
 initializes a CCQuadParticleSystem from a CCDictionary. More...
 
bool initWithDictionary (CCDictionary *dictionary, const char *dirname)
 initializes a particle system from a NSDictionary and the path from where to load the png More...
 
virtual bool initWithTotalParticles (unsigned int numberOfParticles)
 Initializes a system with a fixed number of particles. More...
 
bool addParticle ()
 Add a particle to the emitter. More...
 
void initParticle (tCCParticle *particle)
 Initializes a particle. More...
 
void stopSystem ()
 stop emitting particles. Running particles will continue to run until they die More...
 
void resetSystem ()
 Kill all living particles. More...
 
bool isFull ()
 whether or not the system is full More...
 
virtual void updateQuadWithParticle (tCCParticle *particle, const CCPoint &newPosition)
 should be overridden by subclasses More...
 
virtual void postStep ()
 should be overridden by subclasses More...
 
virtual void update (float dt)
 Sets a CCScheduler object that is used to schedule all "updates" and timers. More...
 
virtual void updateWithNoTime (void)
 
void loadDefaults ()
 
void loadScaledDefaults (float)
 
void resumeSystem ()
 
void saveDefaults ()
 
- Public Member Functions inherited from CCNode
virtual ~CCNode (void)
 Default destructor NA NA. More...
 
virtual bool init ()
 Initializes the instance of CCNode. More...
 
const char * description (void)
 Gets the description string. More...
 
virtual void setVisible (bool visible)
 Sets whether the node is visible. More...
 
virtual bool isVisible ()
 Determines if the node is visible. More...
 
virtual void setRotation (float fRotation)
 Sets the rotation (angle) of the node in degrees. More...
 
virtual float getRotation ()
 Returns the rotation of the node in degrees. More...
 
virtual void setRotationX (float fRotaionX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More...
 
virtual float getRotationX ()
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More...
 
virtual void setRotationY (float fRotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual float getRotationY ()
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual void setOrderOfArrival (unsigned int uOrderOfArrival)
 Sets the arrival order when this node has a same ZOrder with other children. More...
 
virtual unsigned int getOrderOfArrival ()
 Returns the arrival order, indecates which children is added previously. More...
 
virtual void setGLServerState (ccGLServerState glServerState)
 Sets the state of OpenGL server side. More...
 
virtual ccGLServerState getGLServerState ()
 Returns the state of OpenGL server side. More...
 
virtual void ignoreAnchorPointForPosition (bool ignore)
 Sets whether the anchor point will be (0,0) when you position this node. More...
 
virtual bool isIgnoreAnchorPointForPosition ()
 Gets whether the anchor point will be (0,0) when you position this node. More...
 
virtual void removeChild (CCNode *child)
 Removes a child from the container with a cleanup. More...
 
virtual void removeChild (CCNode *child, bool cleanup)
 Removes a child from the container. More...
 
virtual void removeChildByTag (int tag)
 Removes a child from the container by tag value with a cleanup. More...
 
virtual void removeChildByTag (int tag, bool cleanup)
 Removes a child from the container by tag value. More...
 
virtual void removeAllChildren ()
 Removes all children from the container with a cleanup. More...
 
virtual void removeAllChildrenWithCleanup (bool cleanup)
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. More...
 
virtual void reorderChild (CCNode *child, int zOrder)
 Reorders a child according to a new z value. More...
 
virtual void sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered. More...
 
virtual CCCameragetCamera ()
 Returns a camera object that lets you move the node using a gluLookAt. More...
 
virtual bool isRunning ()
 Returns whether or not the node accepts event callbacks. More...
 
virtual void cleanup (void)
 Stops all running actions and schedulers. More...
 
virtual void draw (void)
 Override this method to draw your own node. More...
 
virtual void visit (void)
 Visits this node's children and draw them recursively. More...
 
CCRect boundingBox (void)
 Returns a "local" axis aligned bounding box of the node. More...
 
virtual CCAffineTransform nodeToWorldTransform (void)
 Returns the world affine transform matrix. More...
 
virtual CCAffineTransform worldToNodeTransform (void)
 Returns the inverse world affine transform matrix. More...
 
 CCNode (void)
 Default constructor ctor. More...
 
 CCNode (const CCNode &)
 
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. More...
 
virtual void _setZOrder (int z)
 Sets the z order which stands for the drawing order. More...
 
virtual int getZOrder ()
 Gets the Z order of this node. More...
 
virtual void setVertexZ (float vertexZ)
 Sets the real OpenGL Z vertex. More...
 
virtual float getVertexZ ()
 Gets OpenGL Z vertex of this node. More...
 
virtual float getScaleX ()
 Returns the scale factor on X axis of this node. More...
 
virtual float getScaleY ()
 Returns the scale factor on Y axis of this node. More...
 
virtual float getScale ()
 Gets the scale factor of the node, when X and Y have the same scale factor. More...
 
virtual void setScale (float fScaleX, float fScaleY)
 Changes both X and Y scale factor of the node. More...
 
virtual void setPosition (const CCPoint &position)
 Changes the position (x,y) of the node in OpenGL coordinates. More...
 
virtual const CCPointgetPosition ()
 Gets the position (x,y) of the node in OpenGL coordinates. More...
 
virtual void setPosition (float x, float y)
 Sets position in a more efficient way. More...
 
virtual void getPosition (float *x, float *y)
 Gets position in a more efficient way, returns two number instead of a CCPoint object. More...
 
virtual void setPositionX (float x)
 Gets/Sets x or y coordinate individually for position. More...
 
virtual float getPositionX (void)
 Sets the Z order which stands for the drawing order, and reorder this node in its parent's children array. More...
 
virtual void setPositionY (float y)
 Sets the Z order which stands for the drawing order, and reorder this node in its parent's children array. More...
 
virtual float getPositionY (void)
 Sets the Z order which stands for the drawing order, and reorder this node in its parent's children array. More...
 
virtual void setSkewX (float fSkewX)
 Changes the X skew angle of the node in degrees. More...
 
virtual float getSkewX ()
 Returns the X skew angle of the node in degrees. More...
 
virtual void setSkewY (float fSkewY)
 Changes the Y skew angle of the node in degrees. More...
 
virtual float getSkewY ()
 Returns the Y skew angle of the node in degrees. More...
 
virtual void setAnchorPoint (const CCPoint &anchorPoint)
 Sets the anchor point in percent. More...
 
virtual const CCPointgetAnchorPoint ()
 Returns the anchor point in percent. More...
 
virtual const CCPointgetAnchorPointInPoints ()
 Returns the anchorPoint in absolute pixels. More...
 
virtual void setContentSize (const CCSize &contentSize)
 Sets the untransformed size of the node. More...
 
virtual const CCSizegetContentSize () const
 Returns the untransformed size of the node. More...
 
virtual CCSize getScaledContentSize (void)
 
virtual void addChild (CCNode *child)
 Adds a child to the container with z-order as 0. More...
 
virtual void addChild (CCNode *child, int zOrder)
 Adds a child to the container with a z-order. More...
 
virtual void addChild (CCNode *child, int zOrder, int tag)
 Adds a child to the container with z order and tag. More...
 
virtual CCNodegetChildByTag (int tag)
 Gets a child from the container with its tag. More...
 
virtual CCArraygetChildren ()
 Return an array of children. More...
 
virtual unsigned int getChildrenCount (void) const
 Get the amount of children. More...
 
virtual void setParent (CCNode *parent)
 Sets the parent node. More...
 
virtual CCNodegetParent ()
 Returns a pointer to the parent node. More...
 
virtual void removeFromParent ()
 Removes this node itself from its parent node with a cleanup. More...
 
virtual void removeFromParentAndCleanup (bool cleanup)
 Removes this node itself from its parent node. More...
 
virtual void removeMeAndCleanup (void)
 
virtual CCGridBasegetGrid ()
 Returns a grid object that is used when applying effects. More...
 
virtual void setGrid (CCGridBase *pGrid)
 Changes a grid object that is used when applying effects. More...
 
virtual void * getUserData ()
 Returns a tag that is used to identify the node easily. More...
 
virtual void setUserData (void *pUserData)
 Sets a custom user data pointer. More...
 
virtual CCObjectgetUserObject ()
 Returns a user assigned CCObject. More...
 
virtual void setUserObject (CCObject *pUserObject)
 Returns a user assigned CCObject. More...
 
virtual CCGLProgramgetShaderProgram ()
 Return the shader program currently used for this node. More...
 
virtual void setShaderProgram (CCGLProgram *pShaderProgram)
 Sets the shader program for this node. More...
 
virtual void registerScriptHandler (int handler)
 Registers a script function that will be called in onEnter() & onExit() seires functions. More...
 
virtual void unregisterScriptHandler (void)
 Unregisters a script function that will be called in onEnter() & onExit() series functions. More...
 
int getScriptHandler ()
 Gets script handler for onEnter/onExit event. More...
 
void scheduleUpdateWithPriorityLua (int nHandler, int priority)
 Schedules for lua script. More...
 
virtual void onEnter ()
 Event callback that is invoked every time when CCNode enters the 'stage'. More...
 
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the CCNode enters in the 'stage'. More...
 
virtual void onExit ()
 Event callback that is invoked every time the CCNode leaves the 'stage'. More...
 
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the CCNode leaves the 'stage'. More...
 
virtual void setActionManager (CCActionManager *actionManager)
 Sets the CCActionManager object that is used by all actions. More...
 
virtual CCActionManagergetActionManager ()
 Gets the CCActionManager object that is used by all actions. More...
 
CCActionrunAction (CCAction *action)
 Executes an action, and returns the action that is executed. More...
 
void stopAllActions (void)
 Stops and removes all actions from the running action list . More...
 
void stopAction (CCAction *action)
 Stops and removes an action from the running action list. More...
 
void stopActionByTag (int tag)
 Removes an action from the running action list by its tag. More...
 
CCActiongetActionByTag (int tag)
 Gets an action from the running action list by its tag. More...
 
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). More...
 
virtual void setScheduler (CCScheduler *scheduler)
 Sets a CCScheduler object that is used to schedule all "updates" and timers. More...
 
virtual CCSchedulergetScheduler ()
 Gets a CCSheduler object. More...
 
bool isScheduled (SEL_SCHEDULE selector)
 Checks whether a selector is scheduled. More...
 
void scheduleUpdate (void)
 Schedules the "update" method. More...
 
void scheduleUpdateWithPriority (int priority)
 Schedules the "update" method with a custom priority. More...
 
void unscheduleUpdate (void)
 Sets a CCScheduler object that is used to schedule all "updates" and timers. More...
 
void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
 Schedules a custom selector. More...
 
void schedule (SEL_SCHEDULE selector, float interval)
 Schedules a custom selector with an interval time in seconds. More...
 
void scheduleOnce (SEL_SCHEDULE selector, float delay)
 Schedules a selector that runs only once, with a delay of 0 or larger. More...
 
void schedule (SEL_SCHEDULE selector)
 Schedules a custom selector, the scheduled selector will be ticked every frame. More...
 
void unschedule (SEL_SCHEDULE selector)
 Unschedules a custom selector. More...
 
void unscheduleAllSelectors (void)
 Unschedule all scheduled selectors: custom selectors, and the 'update' selector. More...
 
void resumeSchedulerAndActions (void)
 Resumes all scheduled selectors and actions. More...
 
void pauseSchedulerAndActions (void)
 Pauses all scheduled selectors and actions. More...
 
void transform (void)
 Performs OpenGL view-matrix transformation based on position, scale, rotation and other attributes. More...
 
void transformAncestors (void)
 Performs OpenGL view-matrix transformation of it's ancestors. More...
 
virtual void updateTransform (void)
 Calls children's updateTransform() method recursively. More...
 
virtual const CCAffineTransform nodeToParentTransform (void)
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
virtual const CCAffineTransform parentToNodeTransform (void)
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More...
 
CCPoint convertToNodeSpace (const CCPoint &worldPoint)
 Converts a Point to node (local) space coordinates. More...
 
CCPoint convertToWorldSpace (const CCPoint &nodePoint)
 Converts a Point to world space coordinates. More...
 
CCPoint convertToNodeSpaceAR (const CCPoint &worldPoint)
 Converts a Point to node (local) space coordinates. More...
 
CCPoint convertToWorldSpaceAR (const CCPoint &nodePoint)
 Converts a local Point to world space coordinates.The result is in Points. More...
 
CCPoint convertTouchToNodeSpace (CCTouch *touch)
 convenience methods which take a CCTouch instead of CCPoint More...
 
CCPoint convertTouchToNodeSpaceAR (CCTouch *touch)
 converts a CCTouch (world coordinates) into a local coordinate. More...
 
void setAdditionalTransform (const CCAffineTransform &additionalTransform)
 Sets the additional transform. More...
 
CCComponentgetComponent (const char *pName) const
 gets a component by its name More...
 
virtual bool addComponent (CCComponent *pComponent)
 adds a component More...
 
virtual bool removeComponent (const char *pName)
 removes a component by its name
More...
 
virtual bool removeComponent (CCComponent *pComponent)
 removes a component by its pointer
More...
 
virtual void removeAllComponents ()
 removes all components More...
 
virtual void updateTweenAction (float, const char *)
 
CCNodeoperator= (const CCNode &)
 
- Public Member Functions inherited from CCObject
 CCObject (void)
 
virtual ~CCObject (void)
 NA. More...
 
void release (void)
 
void retain (void)
 
CCObjectautorelease (void)
 
CCObjectcopy (void)
 
bool isSingleReference (void) const
 
unsigned int retainCount (void) const
 
virtual bool isEqual (const CCObject *pObject)
 
virtual void acceptVisitor (CCDataVisitor &visitor)
 
virtual void update (float dt)
 
 CCObject (const CCObject &)
 
CCObjectoperator= (const CCObject &)
 
virtual void encodeWithCoder (DS_Dictionary *)
 
virtual bool canEncode ()
 
CCObjectType getObjType () const
 
virtual int getTag () const
 
virtual void setTag (int nTag)
 
void setObjType (CCObjectType)
 
- Public Member Functions inherited from CCCopying
virtual CCObjectcopyWithZone (CCZone *pZone)
 
virtual CCTexture2DgetTexture (void)=0
 Returns the currently used texture. More...
 
virtual void setTexture (CCTexture2D *texture)=0
 Sets a new texuture. More...
 
virtual void setBlendFunc (ccBlendFunc blendFunc)=0
 Sets the source blending function. More...
 
virtual ccBlendFunc getBlendFunc (void)=0
 Returns the blending function that is currently being used. More...
 

Static Public Member Functions

static CCParticleSystemcreate (const char *plistFile)
 creates an initializes a CCParticleSystem from a plist file. More...
 
static CCParticleSystemcreateWithTotalParticles (unsigned int numberOfParticles)
 create a system with a fixed number of particles More...
 
- Static Public Member Functions inherited from CCNode
static CCNodecreate (void)
 Allocates and initializes a node. More...
 
- Static Public Member Functions inherited from CCObject
static CCObjectcreateWithCoder (DS_Dictionary *)
 

Public Attributes

bool m_bTransformSystemDirty
 
unsigned int m_uAllocatedParticles
 
bool m_bIsActive
 Is the emitter active. More...
 
bool m_bIsBlendAdditive
 whether or not the particles are using blend additive. More...
 
- Public Attributes inherited from CCObject
unsigned int m_uID
 
int m_nLuaID
 

Protected Member Functions

virtual void updateBlendFunc ()
 

Protected Attributes

std::string m_sPlistFile
 
float m_fElapsed
 time elapsed since the start of the system (in seconds) More...
 
struct {
   CCPoint   gravity
 Gravity value. More...
 
   float   speed
 speed of each particle. More...
 
   float   speedVar
 speed variance of each particle. More...
 
   float   tangentialAccel
 tangential acceleration of each particle. More...
 
   float   tangentialAccelVar
 tangential acceleration variance of each particle. More...
 
   float   radialAccel
 radial acceleration of each particle. More...
 
   float   radialAccelVar
 radial acceleration variance of each particle. More...
 
   bool   rotationIsDir
 set the rotation of each particle to its direction Only available in 'Gravity' mode. More...
 
modeA
 Mode A:Gravity + Tangential Accel + Radial Accel. More...
 
struct {
   float   startRadius
 The starting radius of the particles. More...
 
   float   startRadiusVar
 The starting radius variance of the particles. More...
 
   float   endRadius
 The ending radius of the particles. More...
 
   float   endRadiusVar
 The ending radius variance of the particles. More...
 
   float   rotatePerSecond
 Number of degrees to rotate a particle around the source pos per second. More...
 
   float   rotatePerSecondVar
 Variance in degrees for rotatePerSecond. More...
 
modeB
 Mode B: circular movement (gravity, radial accel and tangential accel don't are not used in this mode) More...
 
tCCParticlem_pParticles
 Array of particles. More...
 
float m_fEmitCounter
 How many particles can be emitted per second. More...
 
unsigned int m_uParticleIdx
 particle idx More...
 
CCParticleBatchNodem_pBatchNode
 weak reference to the CCSpriteBatchNode that renders the CCSprite More...
 
unsigned int m_uParticleCount
 Quantity of particles that are being simulated at the moment. More...
 
float m_fDuration
 How many seconds the emitter will run. More...
 
CCPoint m_tSourcePosition
 sourcePosition of the emitter More...
 
CCPoint m_tPosVar
 Position variance of the emitter. More...
 
float m_fLife
 life, and life variation of each particle More...
 
float m_fLifeVar
 life variance of each particle More...
 
float m_fAngle
 angle and angle variation of each particle More...
 
float m_fAngleVar
 angle variance of each particle More...
 
float m_fStartSize
 start size in pixels of each particle More...
 
float m_fStartSizeVar
 size variance in pixels of each particle More...
 
float m_fEndSize
 end size in pixels of each particle More...
 
float m_fEndSizeVar
 end size variance in pixels of each particle More...
 
ccColor4F m_tStartColor
 start color of each particle More...
 
ccColor4F m_tStartColorVar
 start color variance of each particle More...
 
ccColor4F m_tEndColor
 end color and end color variation of each particle More...
 
ccColor4F m_tEndColorVar
 end color variance of each particle More...
 
float m_fStartSpin
 
float m_fStartSpinVar
 
float m_fEndSpin
 
float m_fEndSpinVar
 
float m_fEmissionRate
 emission rate of the particles More...
 
unsigned int m_uTotalParticles
 maximum particles of the system More...
 
CCTexture2Dm_pTexture
 conforms to CocosNodeTexture protocol More...
 
ccBlendFunc m_tBlendFunc
 conforms to CocosNodeTexture protocol More...
 
bool m_bOpacityModifyRGB
 does the alpha value modify color More...
 
tCCPositionType m_ePositionType
 particles movement type: Free or Grouped More...
 
bool m_bIsAutoRemoveOnFinish
 whether or not the node will be auto-removed when it has no particles left. More...
 
int m_nEmitterMode
 Switch between different kind of emitter modes: More...
 
- Protected Attributes inherited from CCNode
float m_fRotationX
 rotation angle on x-axis More...
 
float m_fRotationY
 rotation angle on y-axis More...
 
float m_fScaleX
 scaling factor on x-axis More...
 
float m_fScaleY
 scaling factor on y-axis More...
 
float m_fVertexZ
 OpenGL real Z vertex. More...
 
CCPoint m_obPosition
 position of the node More...
 
float m_fSkewX
 skew angle on x-axis More...
 
float m_fSkewY
 skew angle on y-axis More...
 
CCPoint m_obAnchorPointInPoints
 anchor point in points More...
 
CCPoint m_obAnchorPoint
 anchor point normalized (NOT in points) More...
 
CCSize m_obContentSize
 untransformed size of the node More...
 
CCAffineTransform m_sAdditionalTransform
 transform More...
 
CCAffineTransform m_sTransform
 transform More...
 
CCAffineTransform m_sInverse
 transform More...
 
CCCameram_pCamera
 a camera More...
 
CCGridBasem_pGrid
 a grid More...
 
int m_nZOrder
 z-order value that affects the draw order More...
 
CCArraym_pChildren
 array of children nodes More...
 
CCNodem_pParent
 weak reference to parent node More...
 
void * m_pUserData
 A user assingned void pointer, Can be point to any cpp object. More...
 
CCObjectm_pUserObject
 A user assigned CCObject. More...
 
CCGLProgramm_pShaderProgram
 OpenGL shader. More...
 
ccGLServerState m_eGLServerState
 OpenGL servier side state. More...
 
unsigned int m_uOrderOfArrival
 used to preserve sequence while sorting children with the same zOrder More...
 
CCSchedulerm_pScheduler
 scheduler used to schedule timers and updates More...
 
CCActionManagerm_pActionManager
 a pointer to ActionManager singleton, which is used to handle all the actions More...
 
bool m_bRunning
 is running More...
 
bool m_bTransformDirty
 transform dirty flag More...
 
bool m_bInverseDirty
 transform dirty flag More...
 
bool m_bAdditionalTransformDirty
 The flag to check whether the additional transform is dirty. More...
 
bool m_bVisible
 is this node visible More...
 
bool m_bIgnoreAnchorPointForPosition
 true if the Anchor Point will be (0,0) when you position the CCNode, false otherwise. More...
 
bool m_bReorderChildDirty
 children order dirty flag More...
 
int m_nScriptHandler
 script handler for onEnter() & onExit(), used in Javascript binding and Lua binding. More...
 
int m_nUpdateScriptHandler
 script handler for update() callback per frame, which is invoked from lua & javascript. More...
 
ccScriptType m_eScriptType
 type of script binding, lua or javascript More...
 
CCComponentContainerm_pComponentContainer
 Dictionary of components. More...
 
- Protected Attributes inherited from CCObject
unsigned int m_uReference
 
unsigned int m_uAutoReleaseCount
 
int m_nTag
 
int m_eObjType
 
unsigned int m_uObjectIdxInArray
 
unsigned int m_uAtlasIndex
 
unsigned int getAtlasIndex (void)
 
void setAtlasIndex (unsigned int var)
 

Detailed Description

Particle System base class.

Attributes of a Particle System:

  • emission rate of the particles
  • Gravity Mode (Mode A):
  • gravity
  • direction
  • speed +- variance
  • tangential acceleration +- variance
  • radial acceleration +- variance
  • Radius Mode (Mode B):
  • startRadius +- variance
  • endRadius +- variance
  • rotate +- variance
  • Properties common to all modes:
  • life +- life variance
  • start spin +- variance
  • end spin +- variance
  • start size +- variance
  • end size +- variance
  • start color +- variance
  • end color +- variance
  • life +- variance
  • blending function
  • texture

cocos2d also supports particles generated by Particle Designer (http://particledesigner.71squared.com/). 'Radius Mode' in Particle Designer uses a fixed emit rate of 30 hz. Since that can't be guaranteed in cocos2d, cocos2d uses a another approach, but the results are almost identical.

cocos2d supports all the variables used by Particle Designer plus a bit more:

  • spinning particles (supported when using CCParticleSystemQuad)
  • tangential acceleration (Gravity mode)
  • radial acceleration (Gravity mode)
  • radius direction (Radius mode) (Particle Designer supports outwards to inwards direction only)

It is possible to customize any of the above mentioned properties in runtime. Example:

emitter.radialAccel = 15;
emitter.startSpin = 0;

Constructor & Destructor Documentation

◆ CCParticleSystem()

ctor

◆ ~CCParticleSystem()

virtual ~CCParticleSystem ( )
virtual

NA NA.

Member Function Documentation

◆ addParticle()

bool addParticle ( )

Add a particle to the emitter.

◆ create()

static CCParticleSystem * create ( const char *  plistFile)
static

creates an initializes a CCParticleSystem from a plist file.

This plist files can be created manually or with Particle Designer: http://particledesigner.71squared.com/

Since
v2.0

◆ createWithTotalParticles()

static CCParticleSystem * createWithTotalParticles ( unsigned int  numberOfParticles)
static

create a system with a fixed number of particles

◆ getAngle()

virtual float getAngle ( void  )
virtual

◆ getAngleVar()

virtual float getAngleVar ( void  )
virtual

◆ getAtlasIndex()

unsigned int getAtlasIndex ( void  )
Remarks
Added by RobTop. See RT_ADD for more info.

◆ getBatchNode()

virtual CCParticleBatchNode * getBatchNode ( void  )
virtual

◆ getBlendFunc()

virtual ccBlendFunc getBlendFunc ( void  )
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.

◆ getDuration()

virtual float getDuration ( void  )
virtual

◆ getEmissionRate()

virtual float getEmissionRate ( void  )
virtual

◆ getEmitterMode()

virtual int getEmitterMode ( void  )
virtual

◆ getEndColor()

virtual const ccColor4F & getEndColor ( void  )
virtual

◆ getEndColorVar()

virtual const ccColor4F & getEndColorVar ( void  )
virtual

◆ getEndRadius()

virtual float getEndRadius ( )
virtual

◆ getEndRadiusVar()

virtual float getEndRadiusVar ( )
virtual

◆ getEndSize()

virtual float getEndSize ( void  )
virtual

◆ getEndSizeVar()

virtual float getEndSizeVar ( void  )
virtual

◆ getEndSpin()

virtual float getEndSpin ( void  )
virtual

◆ getEndSpinVar()

virtual float getEndSpinVar ( void  )
virtual

◆ getGravity()

virtual const CCPoint & getGravity ( )
virtual

◆ getLife()

virtual float getLife ( void  )
virtual

◆ getLifeVar()

virtual float getLifeVar ( void  )
virtual

◆ getOpacityModifyRGB()

virtual bool getOpacityModifyRGB ( void  )
virtual

◆ getParticleCount()

virtual unsigned int getParticleCount ( void  )
virtual

◆ getPositionType()

virtual tCCPositionType getPositionType ( void  )
virtual

◆ getPosVar()

virtual const CCPoint & getPosVar ( void  )
virtual

◆ getRadialAccel()

virtual float getRadialAccel ( )
virtual

◆ getRadialAccelVar()

virtual float getRadialAccelVar ( )
virtual

◆ getRotatePerSecond()

virtual float getRotatePerSecond ( )
virtual

◆ getRotatePerSecondVar()

virtual float getRotatePerSecondVar ( )
virtual

◆ getRotationIsDir()

virtual bool getRotationIsDir ( )
virtual

◆ getSourcePosition()

virtual const CCPoint & getSourcePosition ( void  )
virtual

◆ getSpeed()

virtual float getSpeed ( )
virtual

◆ getSpeedVar()

virtual float getSpeedVar ( )
virtual

◆ getStartColor()

virtual const ccColor4F & getStartColor ( void  )
virtual

◆ getStartColorVar()

virtual const ccColor4F & getStartColorVar ( void  )
virtual

◆ getStartRadius()

virtual float getStartRadius ( )
virtual

◆ getStartRadiusVar()

virtual float getStartRadiusVar ( )
virtual

◆ getStartSize()

virtual float getStartSize ( void  )
virtual

◆ getStartSizeVar()

virtual float getStartSizeVar ( void  )
virtual

◆ getStartSpin()

virtual float getStartSpin ( void  )
virtual

◆ getStartSpinVar()

virtual float getStartSpinVar ( void  )
virtual

◆ getTangentialAccel()

virtual float getTangentialAccel ( )
virtual

◆ getTangentialAccelVar()

virtual float getTangentialAccelVar ( )
virtual

◆ getTexture()

virtual CCTexture2D * getTexture ( void  )
virtual

Returns the currently used texture.

Returns
The texture that is currenlty being used. NA

Implements CCTextureProtocol.

◆ getTotalParticles()

virtual unsigned int getTotalParticles ( void  )
virtual

◆ init()

bool init ( )
virtual

initializes a CCParticleSystem

Reimplemented from CCNode.

◆ initParticle()

void initParticle ( tCCParticle particle)

Initializes a particle.

◆ initWithDictionary() [1/2]

bool initWithDictionary ( CCDictionary dictionary)

initializes a CCQuadParticleSystem from a CCDictionary.

Since
v0.99.3

◆ initWithDictionary() [2/2]

bool initWithDictionary ( CCDictionary dictionary,
const char *  dirname 
)

initializes a particle system from a NSDictionary and the path from where to load the png

Since
v2.1

◆ initWithFile()

bool initWithFile ( const char *  plistFile)

initializes a CCParticleSystem from a plist file.

This plist files can be created manually or with Particle Designer: http://particledesigner.71squared.com/

Since
v0.99.3

◆ initWithTotalParticles()

virtual bool initWithTotalParticles ( unsigned int  numberOfParticles)
virtual

◆ isActive()

virtual bool isActive ( )
virtual

◆ isAutoRemoveOnFinish()

virtual bool isAutoRemoveOnFinish ( )
virtual

◆ isBlendAdditive()

virtual bool isBlendAdditive ( )
virtual

◆ isFull()

bool isFull ( )

whether or not the system is full

◆ loadDefaults()

void loadDefaults ( )
Remarks
Added by RobTop. See RT_ADD for more info.

◆ loadScaledDefaults()

void loadScaledDefaults ( float  )
Remarks
Added by RobTop. See RT_ADD for more info.

◆ postStep()

virtual void postStep ( )
virtual

should be overridden by subclasses

Reimplemented in CCParticleSystemQuad.

◆ resetSystem()

void resetSystem ( )

Kill all living particles.

◆ resumeSystem()

void resumeSystem ( )
Remarks
Added by RobTop. See RT_ADD for more info.

◆ saveDefaults()

void saveDefaults ( )
Remarks
Added by RobTop. See RT_ADD for more info.

◆ setAngle()

virtual void setAngle ( float  var)
virtual

◆ setAngleVar()

virtual void setAngleVar ( float  var)
virtual

◆ setAtlasIndex()

void setAtlasIndex ( unsigned int  var)
Remarks
Added by RobTop. See RT_ADD for more info.

◆ setAutoRemoveOnFinish()

virtual void setAutoRemoveOnFinish ( bool  var)
virtual

◆ setBatchNode()

virtual void setBatchNode ( CCParticleBatchNode var)
virtual

Reimplemented in CCParticleSystemQuad.

◆ setBlendAdditive()

virtual void setBlendAdditive ( bool  value)
virtual

◆ setBlendFunc()

virtual void setBlendFunc ( ccBlendFunc  blendFunc)
virtual

Sets the source blending function.

Parameters
blendFuncA 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.

◆ setDuration()

virtual void setDuration ( float  var)
virtual

◆ setEmissionRate()

virtual void setEmissionRate ( float  var)
virtual

◆ setEmitterMode()

virtual void setEmitterMode ( int  var)
virtual

◆ setEndColor()

virtual void setEndColor ( const ccColor4F var)
virtual

◆ setEndColorVar()

virtual void setEndColorVar ( const ccColor4F var)
virtual

◆ setEndRadius()

virtual void setEndRadius ( float  endRadius)
virtual

◆ setEndRadiusVar()

virtual void setEndRadiusVar ( float  endRadiusVar)
virtual

◆ setEndSize()

virtual void setEndSize ( float  var)
virtual

◆ setEndSizeVar()

virtual void setEndSizeVar ( float  var)
virtual

◆ setEndSpin()

virtual void setEndSpin ( float  var)
virtual

◆ setEndSpinVar()

virtual void setEndSpinVar ( float  var)
virtual

◆ setGravity()

virtual void setGravity ( const CCPoint g)
virtual

◆ setLife()

virtual void setLife ( float  var)
virtual

◆ setLifeVar()

virtual void setLifeVar ( float  var)
virtual

◆ setOpacityModifyRGB()

virtual void setOpacityModifyRGB ( bool  var)
virtual

◆ setPositionType()

virtual void setPositionType ( tCCPositionType  var)
virtual

◆ setPosVar()

virtual void setPosVar ( const CCPoint var)
virtual

◆ setRadialAccel()

virtual void setRadialAccel ( float  t)
virtual

◆ setRadialAccelVar()

virtual void setRadialAccelVar ( float  t)
virtual

◆ setRotatePerSecond()

virtual void setRotatePerSecond ( float  degrees)
virtual

◆ setRotatePerSecondVar()

virtual void setRotatePerSecondVar ( float  degrees)
virtual

◆ setRotation()

virtual void setRotation ( float  fRotation)
virtual

Sets the rotation (angle) of the node in degrees.

0 is the default rotation angle. Positive values rotate node clockwise, and negative values for anti-clockwise.

Parameters
fRotationThe roration of the node in degrees.

Reimplemented from CCNode.

◆ setRotationIsDir()

virtual void setRotationIsDir ( bool  t)
virtual

◆ setScale()

virtual void setScale ( float  scale)
virtual

Changes both X and Y scale factor of the node.

1.0 is the default scale factor. It modifies the X and Y scale at the same time.

Parameters
scaleThe scale factor for both X and Y axis.

Reimplemented from CCNode.

◆ setScaleX()

virtual void setScaleX ( float  fScaleX)
virtual

Changes the scale factor on X axis of this node.

The deafult value is 1.0 if you haven't changed it before

Parameters
fScaleXThe scale factor on X axis.

Reimplemented from CCNode.

◆ setScaleY()

virtual void setScaleY ( float  fScaleY)
virtual

Changes the scale factor on Y axis of this node.

The Default value is 1.0 if you haven't changed it before.

Parameters
fScaleYThe scale factor on Y axis.

Reimplemented from CCNode.

◆ setSourcePosition()

virtual void setSourcePosition ( const CCPoint var)
virtual

◆ setSpeed()

virtual void setSpeed ( float  speed)
virtual

◆ setSpeedVar()

virtual void setSpeedVar ( float  speed)
virtual

◆ setStartColor()

virtual void setStartColor ( const ccColor4F var)
virtual

◆ setStartColorVar()

virtual void setStartColorVar ( const ccColor4F var)
virtual

◆ setStartRadius()

virtual void setStartRadius ( float  startRadius)
virtual

◆ setStartRadiusVar()

virtual void setStartRadiusVar ( float  startRadiusVar)
virtual

◆ setStartSize()

virtual void setStartSize ( float  var)
virtual

◆ setStartSizeVar()

virtual void setStartSizeVar ( float  var)
virtual

◆ setStartSpin()

virtual void setStartSpin ( float  var)
virtual

◆ setStartSpinVar()

virtual void setStartSpinVar ( float  var)
virtual

◆ setTangentialAccel()

virtual void setTangentialAccel ( float  t)
virtual

◆ setTangentialAccelVar()

virtual void setTangentialAccelVar ( float  t)
virtual

◆ setTexture()

virtual void setTexture ( CCTexture2D texture)
virtual

Sets a new texuture.

It will be retained.

Parameters
textureA valid CCTexture2D object, which will be applied to this sprite object. NA

Implements CCTextureProtocol.

Reimplemented in CCParticleSystemQuad.

◆ setTotalParticles()

virtual void setTotalParticles ( unsigned int  var)
virtual

Reimplemented in CCParticleSystemQuad.

◆ stopSystem()

void stopSystem ( )

stop emitting particles. Running particles will continue to run until they die

◆ update()

virtual void update ( float  delta)
virtual

Sets a CCScheduler object that is used to schedule all "updates" and timers.

Warning
If you set a new CCScheduler, then previously created timers/update are going to be removed.
Parameters
schedulerA CCShdeduler object that is used to schedule all "update" and timers. NA

Reimplemented from CCNode.

◆ updateBlendFunc()

virtual void updateBlendFunc ( )
protectedvirtual

◆ updateQuadWithParticle()

virtual void updateQuadWithParticle ( tCCParticle particle,
const CCPoint newPosition 
)
virtual

should be overridden by subclasses

Reimplemented in CCParticleSystemQuad.

◆ updateWithNoTime()

virtual void updateWithNoTime ( void  )
virtual

Member Data Documentation

◆ endRadius

float endRadius

The ending radius of the particles.

Only available in 'Radius' mode.

◆ endRadiusVar

float endRadiusVar

The ending radius variance of the particles.

Only available in 'Radius' mode.

◆ gravity

CCPoint gravity

Gravity value.

Only available in 'Gravity' mode.

◆ m_bIsActive

bool m_bIsActive

Is the emitter active.

◆ m_bIsAutoRemoveOnFinish

bool m_bIsAutoRemoveOnFinish
protected

whether or not the node will be auto-removed when it has no particles left.

By default it is false.

Since
v0.8

◆ m_bIsBlendAdditive

bool m_bIsBlendAdditive

whether or not the particles are using blend additive.

If enabled, the following blending function will be used.

source blend function = GL_SRC_ALPHA;
dest blend function = GL_ONE;

◆ m_bOpacityModifyRGB

bool m_bOpacityModifyRGB
protected

does the alpha value modify color

◆ m_bTransformSystemDirty

bool m_bTransformSystemDirty

◆ m_ePositionType

tCCPositionType m_ePositionType
protected

particles movement type: Free or Grouped

Since
v0.8

◆ m_fAngle

float m_fAngle
protected

angle and angle variation of each particle

◆ m_fAngleVar

float m_fAngleVar
protected

angle variance of each particle

◆ m_fDuration

float m_fDuration
protected

How many seconds the emitter will run.

-1 means 'forever'

◆ m_fElapsed

float m_fElapsed
protected

time elapsed since the start of the system (in seconds)

◆ m_fEmissionRate

float m_fEmissionRate
protected

emission rate of the particles

◆ m_fEmitCounter

float m_fEmitCounter
protected

How many particles can be emitted per second.

◆ m_fEndSize

float m_fEndSize
protected

end size in pixels of each particle

◆ m_fEndSizeVar

float m_fEndSizeVar
protected

end size variance in pixels of each particle

◆ m_fEndSpin

float m_fEndSpin
protected

◆ m_fEndSpinVar

float m_fEndSpinVar
protected

◆ m_fLife

float m_fLife
protected

life, and life variation of each particle

◆ m_fLifeVar

float m_fLifeVar
protected

life variance of each particle

◆ m_fStartSize

float m_fStartSize
protected

start size in pixels of each particle

◆ m_fStartSizeVar

float m_fStartSizeVar
protected

size variance in pixels of each particle

◆ m_fStartSpin

float m_fStartSpin
protected

◆ m_fStartSpinVar

float m_fStartSpinVar
protected

◆ m_nEmitterMode

int m_nEmitterMode
protected

Switch between different kind of emitter modes:

  • kCCParticleModeGravity: uses gravity, speed, radial and tangential acceleration
  • kCCParticleModeRadius: uses radius movement + rotation

◆ m_pBatchNode

CCParticleBatchNode* m_pBatchNode
protected

weak reference to the CCSpriteBatchNode that renders the CCSprite

◆ m_pParticles

tCCParticle* m_pParticles
protected

Array of particles.

◆ m_pTexture

CCTexture2D* m_pTexture
protected

conforms to CocosNodeTexture protocol

◆ m_sPlistFile

std::string m_sPlistFile
protected

◆ m_tBlendFunc

ccBlendFunc m_tBlendFunc
protected

conforms to CocosNodeTexture protocol

◆ m_tEndColor

ccColor4F m_tEndColor
protected

end color and end color variation of each particle

◆ m_tEndColorVar

ccColor4F m_tEndColorVar
protected

end color variance of each particle

◆ m_tPosVar

CCPoint m_tPosVar
protected

Position variance of the emitter.

◆ m_tSourcePosition

CCPoint m_tSourcePosition
protected

sourcePosition of the emitter

◆ m_tStartColor

ccColor4F m_tStartColor
protected

start color of each particle

◆ m_tStartColorVar

ccColor4F m_tStartColorVar
protected

start color variance of each particle

◆ m_uAllocatedParticles

unsigned int m_uAllocatedParticles

◆ m_uAtlasIndex

unsigned int m_uAtlasIndex
protected
Remarks
Added by RobTop. See RT_ADD for more info.

◆ m_uParticleCount

unsigned int m_uParticleCount
protected

Quantity of particles that are being simulated at the moment.

◆ m_uParticleIdx

unsigned int m_uParticleIdx
protected

particle idx

◆ m_uTotalParticles

unsigned int m_uTotalParticles
protected

maximum particles of the system

◆ 

struct { ... } modeA

Mode A:Gravity + Tangential Accel + Radial Accel.

◆ 

struct { ... } modeB

Mode B: circular movement (gravity, radial accel and tangential accel don't are not used in this mode)

◆ radialAccel

float radialAccel

radial acceleration of each particle.

Only available in 'Gravity' mode.

◆ radialAccelVar

float radialAccelVar

radial acceleration variance of each particle.

Only available in 'Gravity' mode.

◆ rotatePerSecond

float rotatePerSecond

Number of degrees to rotate a particle around the source pos per second.

Only available in 'Radius' mode.

◆ rotatePerSecondVar

float rotatePerSecondVar

Variance in degrees for rotatePerSecond.

Only available in 'Radius' mode.

◆ rotationIsDir

bool rotationIsDir

set the rotation of each particle to its direction Only available in 'Gravity' mode.

◆ speed

float speed

speed of each particle.

Only available in 'Gravity' mode.

◆ speedVar

float speedVar

speed variance of each particle.

Only available in 'Gravity' mode.

◆ startRadius

float startRadius

The starting radius of the particles.

Only available in 'Radius' mode.

◆ startRadiusVar

float startRadiusVar

The starting radius variance of the particles.

Only available in 'Radius' mode.

◆ tangentialAccel

float tangentialAccel

tangential acceleration of each particle.

Only available in 'Gravity' mode.

◆ tangentialAccelVar

float tangentialAccelVar

tangential acceleration variance of each particle.

Only available in 'Gravity' mode.


The documentation for this class was generated from the following file: