cocos2d-x  3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ParticleSystem Class Reference

Particle System base class. More...

#include <CCParticleSystem.h>

Inheritance diagram for ParticleSystem:
Node TextureProtocol Ref BlendProtocol ParticleSystemQuad ParticleExplosion ParticleFire ParticleFireworks ParticleFlower ParticleGalaxy ParticleMeteor ParticleRain ParticleSmoke ParticleSnow ParticleSpiral ParticleSun

Public Types

enum  Mode { GRAVITY, RADIUS }
 
enum  PositionType { FREE, RELATIVE, GROUPED }
 possible types of particle positions More...
 
enum  { DURATION_INFINITY = -1, START_SIZE_EQUAL_TO_END_SIZE = -1, START_RADIUS_EQUAL_TO_END_RADIUS = -1 }
 

Public Member Functions

bool addParticle ()
 Add a particle to the emitter. More...
 
void initParticle (tParticle *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 (tParticle *particle, const Point &newPosition)
 should be overridden by subclasses More...
 
virtual void postStep ()
 should be overridden by subclasses More...
 
virtual void updateWithNoTime (void)
virtual bool isAutoRemoveOnFinish () const
virtual void setAutoRemoveOnFinish (bool var)
virtual const PointgetGravity ()
virtual void setGravity (const Point &g)
virtual float getSpeed () const
virtual void setSpeed (float speed)
virtual float getSpeedVar () const
virtual void setSpeedVar (float speed)
virtual float getTangentialAccel () const
virtual void setTangentialAccel (float t)
virtual float getTangentialAccelVar () const
virtual void setTangentialAccelVar (float t)
virtual float getRadialAccel () const
virtual void setRadialAccel (float t)
virtual float getRadialAccelVar () const
virtual void setRadialAccelVar (float t)
virtual bool getRotationIsDir () const
virtual void setRotationIsDir (bool t)
virtual float getStartRadius () const
virtual void setStartRadius (float startRadius)
virtual float getStartRadiusVar () const
virtual void setStartRadiusVar (float startRadiusVar)
virtual float getEndRadius () const
virtual void setEndRadius (float endRadius)
virtual float getEndRadiusVar () const
virtual void setEndRadiusVar (float endRadiusVar)
virtual float getRotatePerSecond () const
virtual void setRotatePerSecond (float degrees)
virtual float getRotatePerSecondVar () const
virtual void setRotatePerSecondVar (float degrees)
virtual void setScale (float s)
 Sets the scale (x,y,z) of the node. More...
 
virtual void setRotation (float newRotation)
 Sets the rotation (angle) of the node in degrees. More...
 
virtual void setScaleX (float newScaleX)
 Sets the scale (x) of the node. More...
 
virtual void setScaleY (float newScaleY)
 Sets the scale (y) of the node. More...
 
virtual bool isActive () const
virtual bool isBlendAdditive () const
virtual void setBlendAdditive (bool value)
virtual ParticleBatchNodegetBatchNode () const
virtual void setBatchNode (ParticleBatchNode *batchNode)
int getAtlasIndex () const
void setAtlasIndex (int index)
unsigned int getParticleCount () const
 Quantity of particles that are being simulated at the moment. More...
 
float getDuration () const
 How many seconds the emitter will run. More...
 
void setDuration (float duration)
const PointgetSourcePosition () const
 sourcePosition of the emitter More...
 
void setSourcePosition (const Point &pos)
const PointgetPosVar () const
 Position variance of the emitter. More...
 
void setPosVar (const Point &pos)
float getLife () const
 life, and life variation of each particle More...
 
void setLife (float life)
float getLifeVar () const
 life variance of each particle More...
 
void setLifeVar (float lifeVar)
float getAngle () const
 angle and angle variation of each particle More...
 
void setAngle (float angle)
float getAngleVar () const
 angle variance of each particle More...
 
void setAngleVar (float angleVar)
Mode getEmitterMode () const
 Switch between different kind of emitter modes: More...
 
void setEmitterMode (Mode mode)
float getStartSize () const
 start size in pixels of each particle More...
 
void setStartSize (float startSize)
float getStartSizeVar () const
 size variance in pixels of each particle More...
 
void setStartSizeVar (float sizeVar)
float getEndSize () const
 end size in pixels of each particle More...
 
void setEndSize (float endSize)
float getEndSizeVar () const
 end size variance in pixels of each particle More...
 
void setEndSizeVar (float sizeVar)
const Color4FgetStartColor () const
 start color of each particle More...
 
void setStartColor (const Color4F &color)
const Color4FgetStartColorVar () const
 start color variance of each particle More...
 
void setStartColorVar (const Color4F &color)
const Color4FgetEndColor () const
 end color and end color variation of each particle More...
 
void setEndColor (const Color4F &color)
const Color4FgetEndColorVar () const
 end color variance of each particle More...
 
void setEndColorVar (const Color4F &color)
float getStartSpin () const
void setStartSpin (float spin)
float getStartSpinVar () const
void setStartSpinVar (float pinVar)
float getEndSpin () const
void setEndSpin (float endSpin)
float getEndSpinVar () const
void setEndSpinVar (float endSpinVar)
float getEmissionRate () const
 emission rate of the particles More...
 
void setEmissionRate (float rate)
virtual int getTotalParticles () const
 maximum particles of the system More...
 
virtual void setTotalParticles (int totalParticles)
void setOpacityModifyRGB (bool opacityModifyRGB)
 does the alpha value modify color More...
 
bool isOpacityModifyRGB () const
CC_DEPRECATED_ATTRIBUTE bool getOpacityModifyRGB () const
PositionType getPositionType () const
 particles movement type: Free or Grouped More...
 
void setPositionType (PositionType type)
virtual void onEnter () override
 Event callback that is invoked every time when Node enters the 'stage'. More...
 
virtual void onExit () override
 Event callback that is invoked every time the Node leaves the 'stage'. More...
 
virtual void update (float dt) override
virtual Texture2DgetTexture () const override
 Returns the currently used texture. More...
 
virtual void setTexture (Texture2D *texture) override
 Sets a new texuture. More...
 
virtual void setBlendFunc (const BlendFunc &blendFunc) override
virtual const BlendFuncgetBlendFunc () const override
 Returns the blending function that is currently being used. More...
 
- Public Member Functions inherited from Node
virtual bool isRunning () const
 Returns whether or not the node is "running". More...
 
void scheduleUpdateWithPriorityLua (int handler, int priority)
 Schedules for lua script. More...
 
local scheduleUpdateWithPriorityLua ( local handler, local priority)
 Schedules for lua script. More...
 
virtual void cleanup ()
 Stops all running actions and schedulers. More...
 
var cleanup ()
 Stops all running actions and schedulers. More...
 
local cleanup ()
 Stops all running actions and schedulers. More...
 
virtual void draw (Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
 Override this method to draw your own node. More...
 
virtual void draw () final
var draw ()
local draw ()
virtual void visit (Renderer *renderer, const kmMat4 &parentTransform, bool parentTransformUpdated)
 Visits this node's children and draw them recursively. More...
 
var visit ( var renderer, var parentTransform, var parentTransformUpdated)
 Visits this node's children and draw them recursively. More...
 
local visit ( local renderer, local parentTransform, local parentTransformUpdated)
 Visits this node's children and draw them recursively. More...
 
virtual void visit () final
var visit ()
local visit ()
virtual ScenegetScene ()
 Returns the Scene that contains the Node. More...
 
var getScene ()
 Returns the Scene that contains the Node. More...
 
local getScene ()
 Returns the Scene that contains the Node. More...
 
virtual Rect getBoundingBox () const
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. More...
 
var getBoundingBox ()
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. More...
 
local getBoundingBox ()
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE Rect 
boundingBox () const
local boundingBox ()
virtual void setEventDispatcher (EventDispatcher *dispatcher)
virtual EventDispatchergetEventDispatcher () const
local getEventDispatcher ()
void setPhysicsBody (PhysicsBody *body)
 set the PhysicsBody that let the sprite effect with physics More...
 
PhysicsBody * getPhysicsBody () const
 get the PhysicsBody the sprite have More...
 
virtual GLubyte getOpacity () const
var getOpacity ()
local getOpacity ()
virtual GLubyte getDisplayedOpacity () const
var getDisplayedOpacity ()
local getDisplayedOpacity ()
virtual void setOpacity (GLubyte opacity)
local setOpacity ( local opacity)
virtual void updateDisplayedOpacity (GLubyte parentOpacity)
var updateDisplayedOpacity ( var parentOpacity)
local updateDisplayedOpacity ( local parentOpacity)
virtual bool isCascadeOpacityEnabled () const
virtual void setCascadeOpacityEnabled (bool cascadeOpacityEnabled)
virtual const Color3BgetColor (void) const
local getColor ()
virtual const Color3BgetDisplayedColor () const
local getDisplayedColor ()
virtual void setColor (const Color3B &color)
var setColor ( var color)
local setColor ( local color)
virtual void updateDisplayedColor (const Color3B &parentColor)
local updateDisplayedColor ( local parentColor)
virtual bool isCascadeColorEnabled () const
virtual void setCascadeColorEnabled (bool cascadeColorEnabled)
virtual void setLocalZOrder (int localZOrder)
 LocalZOrder is the 'key' used to sort the node relative to its siblings. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setZOrder (int localZOrder)
local setZOrder ( local localZOrder)
virtual void _setLocalZOrder (int z)
virtual int getLocalZOrder () const
 Gets the local Z order of this node. More...
 
var getLocalZOrder ()
 Gets the local Z order of this node. More...
 
local getLocalZOrder ()
 Gets the local Z order of this node. More...
 
virtual CC_DEPRECATED_ATTRIBUTE int getZOrder () const
var getZOrder ()
local getZOrder ()
virtual void setGlobalZOrder (float globalZOrder)
 Defines the oder in which the nodes are renderer. More...
 
local setGlobalZOrder ( local globalZOrder)
 Defines the oder in which the nodes are renderer. More...
 
virtual float getGlobalZOrder () const
 Returns the Node's Global Z Order. More...
 
virtual float getScaleX () const
 Returns the scale factor on X axis of this node. More...
 
virtual float getScaleY () const
 Returns the scale factor on Y axis of this node. More...
 
var getScaleY ()
 Returns the scale factor on Y axis of this node. More...
 
local getScaleY ()
 Returns the scale factor on Y axis of this node. More...
 
virtual void setScaleZ (float scaleZ)
 Changes the scale factor on Z axis of this node. More...
 
local setScaleZ ( local scaleZ)
 Changes the scale factor on Z axis of this node. More...
 
virtual float getScaleZ () const
 Returns the scale factor on Z axis of this node. More...
 
virtual float getScale () const
 Gets the scale factor of the node, when X and Y have the same scale factor. More...
 
local getScale ()
 Gets the scale factor of the node, when X and Y have the same scale factor. More...
 
virtual void setScale (float scaleX, float scaleY)
 Sets the scale (x,y) of the node. More...
 
local setScale ( local scaleX, local scaleY)
 Sets the scale (x,y) of the node. More...
 
virtual void setPosition (const Point &position)
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual const PointgetPosition () const
 Gets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual void setPosition (float x, float y)
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
local setPosition ( local x, local y)
 Sets the position (x,y) of the node in its parent's coordinate system. More...
 
virtual void getPosition (float *x, float *y) const
 Gets position in a more efficient way, returns two number instead of a Point object. More...
 
local getPosition ( local x, local y)
 Gets position in a more efficient way, returns two number instead of a Point object. More...
 
virtual void setPositionX (float x)
 Gets/Sets x or y coordinate individually for position. More...
 
virtual float getPositionX (void) const
virtual void setPositionY (float y)
local setPositionY ( local y)
virtual float getPositionY (void) const
local getPositionY ()
virtual void setPosition3D (const Vertex3F &position)
 Sets the position (X, Y, and Z) in its parent's coordinate system. More...
 
var setPosition3D ( var position)
 Sets the position (X, Y, and Z) in its parent's coordinate system. More...
 
local setPosition3D ( local position)
 Sets the position (X, Y, and Z) in its parent's coordinate system. More...
 
virtual Vertex3F getPosition3D () const
 returns the position (X,Y,Z) in its parent's coordinate system More...
 
local getPosition3D ()
 returns the position (X,Y,Z) in its parent's coordinate system More...
 
virtual void setPositionZ (float positionZ)
 Sets the 'z' coordinate in the position. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setVertexZ (float vertexZ)
local setVertexZ ( local vertexZ)
virtual float getPositionZ () const
 Gets position Z coordinate of this node. More...
 
var getPositionZ ()
 Gets position Z coordinate of this node. More...
 
local getPositionZ ()
 Gets position Z coordinate of this node. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE float 
getVertexZ () const
local getVertexZ ()
virtual void setSkewX (float skewX)
 Changes the X skew angle of the node in degrees. More...
 
local setSkewX ( local skewX)
 Changes the X skew angle of the node in degrees. More...
 
virtual float getSkewX () const
 Returns the X skew angle of the node in degrees. More...
 
var getSkewX ()
 Returns the X skew angle of the node in degrees. More...
 
local getSkewX ()
 Returns the X skew angle of the node in degrees. More...
 
virtual void setSkewY (float skewY)
 Changes the Y skew angle of the node in degrees. More...
 
local setSkewY ( local skewY)
 Changes the Y skew angle of the node in degrees. More...
 
virtual float getSkewY () const
 Returns the Y skew angle of the node in degrees. More...
 
local getSkewY ()
 Returns the Y skew angle of the node in degrees. More...
 
virtual void setAnchorPoint (const Point &anchorPoint)
 Sets the anchor point in percent. More...
 
virtual const PointgetAnchorPoint () const
 Returns the anchor point in percent. More...
 
local getAnchorPoint ()
 Returns the anchor point in percent. More...
 
virtual const PointgetAnchorPointInPoints () const
 Returns the anchorPoint in absolute pixels. More...
 
local getAnchorPointInPoints ()
 Returns the anchorPoint in absolute pixels. More...
 
virtual void setContentSize (const Size &contentSize)
 Sets the untransformed size of the node. More...
 
local setContentSize ( local contentSize)
 Sets the untransformed size of the node. More...
 
virtual const SizegetContentSize () const
 Returns the untransformed size of the node. More...
 
local getContentSize ()
 Returns the untransformed size of the node. More...
 
virtual void setVisible (bool visible)
 Sets whether the node is visible. More...
 
local setVisible ( local visible)
 Sets whether the node is visible. More...
 
virtual bool isVisible () const
 Determines if the node is visible. More...
 
virtual float getRotation () const
 Returns the rotation of the node in degrees. More...
 
virtual void setRotation3D (const Vertex3F &rotation)
 Sets the rotation (X,Y,Z) in degrees. More...
 
var setRotation3D ( var rotation)
 Sets the rotation (X,Y,Z) in degrees. More...
 
local setRotation3D ( local rotation)
 Sets the rotation (X,Y,Z) in degrees. More...
 
virtual Vertex3F getRotation3D () const
 returns the rotation (X,Y,Z) in degrees. More...
 
local getRotation3D ()
 returns the rotation (X,Y,Z) in degrees. More...
 
virtual void setRotationSkewX (float rotationX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More...
 
local setRotationSkewX ( local rotationX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setRotationX (float rotationX)
local setRotationX ( local rotationX)
virtual float getRotationSkewX () const
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More...
 
local getRotationSkewX ()
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE float 
getRotationX () const
local getRotationX ()
virtual void setRotationSkewY (float rotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
local setRotationSkewY ( local rotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE void 
setRotationY (float rotationY)
local setRotationY ( local rotationY)
virtual float getRotationSkewY () const
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE float 
getRotationY () const
var getRotationY ()
local getRotationY ()
void setOrderOfArrival (int orderOfArrival)
 Sets the arrival order when this node has a same ZOrder with other children. More...
 
int getOrderOfArrival () const
 Returns the arrival order, indicates which children is added previously. More...
 
CC_DEPRECATED_ATTRIBUTE void setGLServerState (int serverState)
CC_DEPRECATED_ATTRIBUTE int getGLServerState () const
virtual void ignoreAnchorPointForPosition (bool ignore)
 Sets whether the anchor point will be (0,0) when you position this node. More...
 
virtual bool isIgnoreAnchorPointForPosition () const
 Gets whether the anchor point will be (0,0) when you position this node. More...
 
virtual void addChild (Node *child)
 Adds a child to the container with z-order as 0. More...
 
var addChild ( var child)
 Adds a child to the container with z-order as 0. More...
 
local addChild ( local child)
 Adds a child to the container with z-order as 0. More...
 
virtual void addChild (Node *child, int localZOrder)
 Adds a child to the container with a local z-order. More...
 
var addChild ( var child, var localZOrder)
 Adds a child to the container with a local z-order. More...
 
local addChild ( local child, local localZOrder)
 Adds a child to the container with a local z-order. More...
 
virtual void addChild (Node *child, int localZOrder, int tag)
 Adds a child to the container with z order and tag. More...
 
local addChild ( local child, local localZOrder, local tag)
 Adds a child to the container with z order and tag. More...
 
virtual NodegetChildByTag (int tag)
 Gets a child from the container with its tag. More...
 
var getChildByTag ( var tag)
 Gets a child from the container with its tag. More...
 
local getChildByTag ( local tag)
 Gets a child from the container with its tag. More...
 
virtual Vector< Node * > & getChildren ()
 Returns the array of the node's children. More...
 
local getChildren ()
 Returns the array of the node's children. More...
 
virtual const Vector< Node * > & getChildren () const
local getChildren ()
virtual ssize_t getChildrenCount () const
 Returns the amount of children. More...
 
virtual void setParent (Node *parent)
 Sets the parent node. More...
 
var setParent ( var parent)
 Sets the parent node. More...
 
local setParent ( local parent)
 Sets the parent node. More...
 
virtual NodegetParent ()
 Returns a pointer to the parent node. More...
 
virtual const NodegetParent () const
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...
 
local removeFromParent ( local cleanup)
 Removes this node itself from its parent node. More...
 
virtual void removeChild (Node *child, bool cleanup=true)
 Removes a child from the container. More...
 
virtual void removeChildByTag (int tag, bool cleanup=true)
 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...
 
local removeAllChildren ( local cleanup)
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. More...
 
virtual void reorderChild (Node *child, int localZOrder)
 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...
 
var sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered. More...
 
local sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered. More...
 
virtual int getTag () const
 Returns a tag that is used to identify the node easily. More...
 
virtual void setTag (int tag)
 Changes the tag that is used to identify the node easily. More...
 
local setTag ( local tag)
 Changes the tag that is used to identify the node easily. More...
 
virtual void * getUserData ()
 Returns a custom user data pointer. More...
 
virtual const void * getUserData () const
virtual void setUserData (void *userData)
 Sets a custom user data pointer. More...
 
virtual RefgetUserObject ()
 Returns a user assigned Object. More...
 
virtual const RefgetUserObject () const
virtual void setUserObject (Ref *userObject)
 Returns a user assigned Object. More...
 
local setUserObject ( local userObject)
 Returns a user assigned Object. More...
 
virtual GLProgramgetShaderProgram ()
 Return the shader program currently used for this node. More...
 
virtual const GLProgramgetShaderProgram () const
local getShaderProgram ()
virtual void setShaderProgram (GLProgram *shaderProgram)
 Sets the shader program for this node. More...
 
local setShaderProgram ( local shaderProgram)
 Sets the shader program for this node. More...
 
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the Node enters in the 'stage'. More...
 
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the Node leaves the 'stage'. More...
 
virtual void setActionManager (ActionManager *actionManager)
 Sets the ActionManager object that is used by all actions. More...
 
virtual ActionManagergetActionManager ()
 Gets the ActionManager object that is used by all actions. More...
 
virtual const ActionManagergetActionManager () const
ActionrunAction (Action *action)
 Executes an action, and returns the action that is executed. More...
 
var runAction ( var action)
 Executes an action, and returns the action that is executed. More...
 
local runAction ( local action)
 Executes an action, and returns the action that is executed. More...
 
void stopAllActions ()
 Stops and removes all actions from the running action list . More...
 
void stopAction (Action *action)
 Stops and removes an action from the running action list. More...
 
var stopAction ( var action)
 Stops and removes an action from the running action list. More...
 
local stopAction ( local 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...
 
var stopActionByTag ( var tag)
 Removes an action from the running action list by its tag. More...
 
local stopActionByTag ( local tag)
 Removes an action from the running action list by its tag. More...
 
ActiongetActionByTag (int tag)
 Gets an action from the running action list by its tag. More...
 
ssize_t getNumberOfRunningActions () const
 Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). More...
 
CC_DEPRECATED_ATTRIBUTE ssize_t numberOfRunningActions () const
local numberOfRunningActions ()
virtual void setScheduler (Scheduler *scheduler)
 Sets a Scheduler object that is used to schedule all "updates" and timers. More...
 
virtual SchedulergetScheduler ()
 Gets a Sheduler object. More...
 
virtual const SchedulergetScheduler () const
local getScheduler ()
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)
var unscheduleUpdate ()
local unscheduleUpdate ()
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...
 
var unscheduleAllSelectors ()
 Unschedule all scheduled selectors: custom selectors, and the 'update' selector. More...
 
void resume (void)
 Resumes all scheduled selectors, actions and event listeners. More...
 
void pause (void)
 Pauses all scheduled selectors, actions and event listeners. More...
 
var pause ()
 Pauses all scheduled selectors, actions and event listeners. More...
 
local pause ()
 Pauses all scheduled selectors, actions and event listeners. More...
 
CC_DEPRECATED_ATTRIBUTE void resumeSchedulerAndActions (void)
 Resumes all scheduled selectors, actions and event listeners. More...
 
local resumeSchedulerAndActions ()
 Resumes all scheduled selectors, actions and event listeners. More...
 
CC_DEPRECATED_ATTRIBUTE void pauseSchedulerAndActions (void)
 Pauses all scheduled selectors, actions and event listeners. More...
 
local pauseSchedulerAndActions ()
 Pauses all scheduled selectors, actions and event listeners. More...
 
virtual void updateTransform ()
 Calls children's updateTransform() method recursively. More...
 
virtual const kmMat4 & getNodeToParentTransform () const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
local getNodeToParentTransform ()
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More...
 
virtual AffineTransform getNodeToParentAffineTransform () const
local getNodeToParentAffineTransform ()
virtual void setNodeToParentTransform (const kmMat4 &transform)
 Sets the Transformation matrix manually. More...
 
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
nodeToParentTransform () const
local nodeToParentTransform ()
virtual const kmMat4 & getParentToNodeTransform () const
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More...
 
virtual AffineTransform getParentToNodeAffineTransform () const
local getParentToNodeAffineTransform ()
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
parentToNodeTransform () const
local parentToNodeTransform ()
virtual kmMat4 getNodeToWorldTransform () const
 Returns the world affine transform matrix. More...
 
virtual AffineTransform getNodeToWorldAffineTransform () const
local getNodeToWorldAffineTransform ()
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
nodeToWorldTransform () const
local nodeToWorldTransform ()
virtual kmMat4 getWorldToNodeTransform () const
 Returns the inverse world affine transform matrix. More...
 
local getWorldToNodeTransform ()
 Returns the inverse world affine transform matrix. More...
 
virtual AffineTransform getWorldToNodeAffineTransform () const
local getWorldToNodeAffineTransform ()
virtual
CC_DEPRECATED_ATTRIBUTE
AffineTransform 
worldToNodeTransform () const
local worldToNodeTransform ()
Point convertToNodeSpace (const Point &worldPoint) const
 Converts a Point to node (local) space coordinates. More...
 
Point convertToWorldSpace (const Point &nodePoint) const
 Converts a Point to world space coordinates. More...
 
Point convertToNodeSpaceAR (const Point &worldPoint) const
 Converts a Point to node (local) space coordinates. More...
 
var convertToNodeSpaceAR ( var worldPoint)
 Converts a Point to node (local) space coordinates. More...
 
local convertToNodeSpaceAR ( local worldPoint)
 Converts a Point to node (local) space coordinates. More...
 
Point convertToWorldSpaceAR (const Point &nodePoint) const
 Converts a local Point to world space coordinates.The result is in Points. More...
 
Point convertTouchToNodeSpace (Touch *touch) const
 convenience methods which take a Touch instead of Point More...
 
Point convertTouchToNodeSpaceAR (Touch *touch) const
 converts a Touch (world coordinates) into a local coordinate. More...
 
var convertTouchToNodeSpaceAR ( var touch)
 converts a Touch (world coordinates) into a local coordinate. More...
 
local convertTouchToNodeSpaceAR ( local touch)
 converts a Touch (world coordinates) into a local coordinate. More...
 
void setAdditionalTransform (kmMat4 *additionalTransform)
 Sets an additional transform matrix to the node. More...
 
var setAdditionalTransform ( var additionalTransform)
 Sets an additional transform matrix to the node. More...
 
local setAdditionalTransform ( local additionalTransform)
 Sets an additional transform matrix to the node. More...
 
void setAdditionalTransform (const AffineTransform &additionalTransform)
ComponentgetComponent (const std::string &pName)
 gets a component by its name More...
 
var getComponent ( var pName)
 gets a component by its name More...
 
local getComponent ( local pName)
 gets a component by its name More...
 
virtual bool addComponent (Component *pComponent)
 adds a component More...
 
var addComponent ( var pComponent)
 adds a component More...
 
local addComponent ( local pComponent)
 adds a component More...
 
virtual bool removeComponent (const std::string &pName)
 removes a component by its name More...
 
var removeComponent ( var pName)
 removes a component by its name More...
 
local removeComponent ( local pName)
 removes a component by its name More...
 
virtual void removeAllComponents ()
 removes all components More...
 
virtual std::string getDescription () const
 Gets the description string. More...
 
- Public Member Functions inherited from Ref
void retain ()
 Retains the ownership. More...
 
void release ()
 Release the ownership immediately. More...
 
Refautorelease ()
 Release the ownership sometime soon automatically. More...
 
unsigned int getReferenceCount () const
 Returns the Ref's current reference count. More...
 
virtual ~Ref ()
- Public Member Functions inherited from TextureProtocol
virtual ~TextureProtocol ()
- Public Member Functions inherited from BlendProtocol
virtual ~BlendProtocol ()

Static Public Member Functions

static ParticleSystemcreate (const std::string &plistFile)
 creates an initializes a ParticleSystem from a plist file. More...
 
static ParticleSystemcreateWithTotalParticles (int numberOfParticles)
 create a system with a fixed number of particles More...
 
- Static Public Member Functions inherited from Node
static Nodecreate (void)
 Allocates and initializes a node. More...
 
var create ()
 Allocates and initializes a node. More...
 
local create ()
 Allocates and initializes a node. More...
 

Protected Member Functions

 ParticleSystem ()
virtual ~ParticleSystem ()
bool init ()
 initializes a ParticleSystem More...
 
bool initWithFile (const std::string &plistFile)
 initializes a ParticleSystem from a plist file. More...
 
bool initWithDictionary (ValueMap &dictionary)
 initializes a QuadParticleSystem from a Dictionary. More...
 
bool initWithDictionary (ValueMap &dictionary, const std::string &dirname)
 initializes a particle system from a NSDictionary and the path from where to load the png More...
 
virtual bool initWithTotalParticles (int numberOfParticles)
 Initializes a system with a fixed number of particles. More...
 
virtual void updateBlendFunc ()
- Protected Member Functions inherited from Node
 Node ()
 Node ()
 Node ()
virtual ~Node ()
local ~Node ()
void childrenAlloc (void)
 lazy allocs More...
 
var childrenAlloc ()
 lazy allocs More...
 
local childrenAlloc ()
 lazy allocs More...
 
void insertChild (Node *child, int z)
 helper that reorder a child More...
 
var insertChild ( var child, var z)
 helper that reorder a child More...
 
local insertChild ( local child, local z)
 helper that reorder a child More...
 
void detachChild (Node *child, ssize_t index, bool doCleanup)
 Removes a child, call child->onExit(), do cleanup, remove it from children array. More...
 
var detachChild ( var child, var index, var doCleanup)
 Removes a child, call child->onExit(), do cleanup, remove it from children array. More...
 
local detachChild ( local child, local index, local doCleanup)
 Removes a child, call child->onExit(), do cleanup, remove it from children array. More...
 
Point convertToWindowSpace (const Point &nodePoint) const
 Convert cocos2d coordinates to UI windows coordinate. More...
 
var convertToWindowSpace ( var nodePoint)
 Convert cocos2d coordinates to UI windows coordinate. More...
 
local convertToWindowSpace ( local nodePoint)
 Convert cocos2d coordinates to UI windows coordinate. More...
 
kmMat4 transform (const kmMat4 &parentTransform)
virtual void updateCascadeOpacity ()
var updateCascadeOpacity ()
local updateCascadeOpacity ()
virtual void disableCascadeOpacity ()
var disableCascadeOpacity ()
local disableCascadeOpacity ()
virtual void updateCascadeColor ()
var updateCascadeColor ()
local updateCascadeColor ()
virtual void disableCascadeColor ()
var disableCascadeColor ()
virtual void updateColor ()
var updateColor ()
local updateColor ()
- Protected Member Functions inherited from Ref
 Ref ()
 Constructor. More...
 

Protected Attributes

bool _isBlendAdditive
 whether or not the particles are using blend additive. More...
 
bool _isAutoRemoveOnFinish
 whether or not the node will be auto-removed when it has no particles left. More...
 
std::string _plistFile
float _elapsed
 time elapsed since the start of the system (in seconds) More...
 
struct {
   Point   gravity
 Gravity value. More...
 
   var   gravity
 Gravity value. More...
 
   local   gravity
 Gravity value. More...
 
   float   speed
 speed of each particle. More...
 
   var   speed
 speed of each particle. More...
 
   local   speed
 speed of each particle. More...
 
   float   speedVar
 speed variance of each particle. More...
 
   var   speedVar
 speed variance of each particle. More...
 
   local   speedVar
 speed variance of each particle. More...
 
   float   tangentialAccel
 tangential acceleration of each particle. More...
 
   var   tangentialAccel
 tangential acceleration of each particle. More...
 
   local   tangentialAccel
 tangential acceleration of each particle. More...
 
   float   tangentialAccelVar
 tangential acceleration variance of each particle. More...
 
   var   tangentialAccelVar
 tangential acceleration variance of each particle. More...
 
   local   tangentialAccelVar
 tangential acceleration variance of each particle. More...
 
   float   radialAccel
 radial acceleration of each particle. More...
 
   var   radialAccel
 radial acceleration of each particle. More...
 
   local   radialAccel
 radial acceleration of each particle. More...
 
   float   radialAccelVar
 radial acceleration variance of each particle. More...
 
   var   radialAccelVar
 radial acceleration variance of each particle. More...
 
   local   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...
 
   var   rotationIsDir
 set the rotation of each particle to its direction Only available in 'Gravity' mode. More...
 
   local   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...
 
   var   startRadius
 The starting radius of the particles. More...
 
   local   startRadius
 The starting radius of the particles. More...
 
   float   startRadiusVar
 The starting radius variance of the particles. More...
 
   var   startRadiusVar
 The starting radius variance of the particles. More...
 
   local   startRadiusVar
 The starting radius variance of the particles. More...
 
   float   endRadius
 The ending radius of the particles. More...
 
   var   endRadius
 The ending radius of the particles. More...
 
   local   endRadius
 The ending radius of the particles. More...
 
   float   endRadiusVar
 The ending radius variance of the particles. More...
 
   var   endRadiusVar
 The ending radius variance of the particles. More...
 
   local   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...
 
   var   rotatePerSecond
 Number of degrees to rotate a particle around the source pos per second. More...
 
   local   rotatePerSecond
 Number of degrees to rotate a particle around the source pos per second. More...
 
   float   rotatePerSecondVar
 Variance in degrees for rotatePerSecond. More...
 
   var   rotatePerSecondVar
 Variance in degrees for rotatePerSecond. More...
 
   local   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...
 
tParticle_particles
 Array of particles. More...
 
std::string _configName
float _emitCounter
 How many particles can be emitted per second. More...
 
int _particleIdx
 particle idx More...
 
ParticleBatchNode_batchNode
 weak reference to the SpriteBatchNode that renders the Sprite More...
 
int _atlasIndex
bool _transformSystemDirty
int _allocatedParticles
bool _isActive
 Is the emitter active. More...
 
int _particleCount
 Quantity of particles that are being simulated at the moment. More...
 
float _duration
 How many seconds the emitter will run. More...
 
Point _sourcePosition
 sourcePosition of the emitter More...
 
Point _posVar
 Position variance of the emitter. More...
 
float _life
 life, and life variation of each particle More...
 
float _lifeVar
 life variance of each particle More...
 
float _angle
 angle and angle variation of each particle More...
 
float _angleVar
 angle variance of each particle More...
 
Mode _emitterMode
 Switch between different kind of emitter modes: More...
 
float _startSize
 start size in pixels of each particle More...
 
float _startSizeVar
 size variance in pixels of each particle More...
 
float _endSize
 end size in pixels of each particle More...
 
float _endSizeVar
 end size variance in pixels of each particle More...
 
Color4F _startColor
 start color of each particle More...
 
Color4F _startColorVar
 start color variance of each particle More...
 
Color4F _endColor
 end color and end color variation of each particle More...
 
Color4F _endColorVar
 end color variance of each particle More...
 
float _startSpin
float _startSpinVar
float _endSpin
float _endSpinVar
float _emissionRate
 emission rate of the particles More...
 
int _totalParticles
 maximum particles of the system More...
 
Texture2D_texture
 conforms to CocosNodeTexture protocol More...
 
BlendFunc _blendFunc
 conforms to CocosNodeTexture protocol More...
 
bool _opacityModifyRGB
 does the alpha value modify color More...
 
int _yCoordFlipped
 does FlippedY variance of each particle More...
 
PositionType _positionType
 particles movement type: Free or Grouped More...
 
- Protected Attributes inherited from Node
float _rotationX
 rotation on the X-axis More...
 
float _rotationY
 rotation on the Y-axis More...
 
var _rotationY
 rotation on the Y-axis More...
 
local _rotationY
 rotation on the Y-axis More...
 
float _rotationZ_X
 rotation angle on Z-axis, component X More...
 
var _rotationZ_X
 rotation angle on Z-axis, component X More...
 
local _rotationZ_X
 rotation angle on Z-axis, component X More...
 
float _rotationZ_Y
 rotation angle on Z-axis, component Y More...
 
var _rotationZ_Y
 rotation angle on Z-axis, component Y More...
 
local _rotationZ_Y
 rotation angle on Z-axis, component Y More...
 
float _scaleX
 scaling factor on x-axis More...
 
var _scaleX
 scaling factor on x-axis More...
 
local _scaleX
 scaling factor on x-axis More...
 
float _scaleY
 scaling factor on y-axis More...
 
var _scaleY
 scaling factor on y-axis More...
 
local _scaleY
 scaling factor on y-axis More...
 
float _scaleZ
 scaling factor on z-axis More...
 
var _scaleZ
 scaling factor on z-axis More...
 
local _scaleZ
 scaling factor on z-axis More...
 
Point _position
 position of the node More...
 
var _position
 position of the node More...
 
local _position
 position of the node More...
 
float _positionZ
 OpenGL real Z position. More...
 
var _positionZ
 OpenGL real Z position. More...
 
local _positionZ
 OpenGL real Z position. More...
 
float _skewX
 skew angle on x-axis More...
 
var _skewX
 skew angle on x-axis More...
 
local _skewX
 skew angle on x-axis More...
 
float _skewY
 skew angle on y-axis More...
 
var _skewY
 skew angle on y-axis More...
 
local _skewY
 skew angle on y-axis More...
 
Point _anchorPointInPoints
 anchor point in points More...
 
var _anchorPointInPoints
 anchor point in points More...
 
local _anchorPointInPoints
 anchor point in points More...
 
Point _anchorPoint
 anchor point normalized (NOT in points) More...
 
var _anchorPoint
 anchor point normalized (NOT in points) More...
 
local _anchorPoint
 anchor point normalized (NOT in points) More...
 
Size _contentSize
 untransformed size of the node More...
 
var _contentSize
 untransformed size of the node More...
 
local _contentSize
 untransformed size of the node More...
 
kmMat4 _modelViewTransform
 ModelView transform of the Node. More...
 
var _modelViewTransform
 ModelView transform of the Node. More...
 
local _modelViewTransform
 ModelView transform of the Node. More...
 
kmMat4 _transform
 transform More...
 
var _transform
 transform More...
 
local _transform
 transform More...
 
bool _transformDirty
 transform dirty flag More...
 
var _transformDirty
 transform dirty flag More...
 
local _transformDirty
 transform dirty flag More...
 
kmMat4 _inverse
 inverse transform More...
 
var _inverse
 inverse transform More...
 
local _inverse
 inverse transform More...
 
bool _inverseDirty
 inverse transform dirty flag More...
 
var _inverseDirty
 inverse transform dirty flag More...
 
local _inverseDirty
 inverse transform dirty flag More...
 
kmMat4 _additionalTransform
 transform More...
 
var _additionalTransform
 transform More...
 
local _additionalTransform
 transform More...
 
bool _useAdditionalTransform
 The flag to check whether the additional transform is dirty. More...
 
var _useAdditionalTransform
 The flag to check whether the additional transform is dirty. More...
 
local _useAdditionalTransform
 The flag to check whether the additional transform is dirty. More...
 
bool _transformUpdated
 Whether or not the Transform object was updated since the last frame. More...
 
int _localZOrder
 Local order (relative to its siblings) used to sort the node. More...
 
var _localZOrder
 Local order (relative to its siblings) used to sort the node. More...
 
local _localZOrder
 Local order (relative to its siblings) used to sort the node. More...
 
float _globalZOrder
 Global order used to sort the node. More...
 
var _globalZOrder
 Global order used to sort the node. More...
 
local _globalZOrder
 Global order used to sort the node. More...
 
Vector< Node * > _children
 array of children nodes More...
 
local _children
 array of children nodes More...
 
Node_parent
 weak reference to parent node More...
 
var _parent
 weak reference to parent node More...
 
local _parent
 weak reference to parent node More...
 
int _tag
 a tag. Can be any number you assigned just to identify this node More...
 
var _tag
 a tag. Can be any number you assigned just to identify this node More...
 
local _tag
 a tag. Can be any number you assigned just to identify this node More...
 
std::string _name
 a string label, an user defined string to identify this node More...
 
var _name
 a string label, an user defined string to identify this node More...
 
local _name
 a string label, an user defined string to identify this node More...
 
void * _userData
 A user assingned void pointer, Can be point to any cpp object. More...
 
var _userData
 A user assingned void pointer, Can be point to any cpp object. More...
 
local _userData
 A user assingned void pointer, Can be point to any cpp object. More...
 
Ref_userObject
 A user assigned Object. More...
 
var _userObject
 A user assigned Object. More...
 
local _userObject
 A user assigned Object. More...
 
GLProgram_shaderProgram
 OpenGL shader. More...
 
var _shaderProgram
 OpenGL shader. More...
 
local _shaderProgram
 OpenGL shader. More...
 
int _orderOfArrival
 used to preserve sequence while sorting children with the same localZOrder More...
 
var _orderOfArrival
 used to preserve sequence while sorting children with the same localZOrder More...
 
local _orderOfArrival
 used to preserve sequence while sorting children with the same localZOrder More...
 
Scheduler_scheduler
 scheduler used to schedule timers and updates More...
 
var _scheduler
 scheduler used to schedule timers and updates More...
 
local _scheduler
 scheduler used to schedule timers and updates More...
 
ActionManager_actionManager
 a pointer to ActionManager singleton, which is used to handle all the actions More...
 
var _actionManager
 a pointer to ActionManager singleton, which is used to handle all the actions More...
 
local _actionManager
 a pointer to ActionManager singleton, which is used to handle all the actions More...
 
EventDispatcher_eventDispatcher
 event dispatcher used to dispatch all kinds of events More...
 
var _eventDispatcher
 event dispatcher used to dispatch all kinds of events More...
 
local _eventDispatcher
 event dispatcher used to dispatch all kinds of events More...
 
bool _running
 is running More...
 
bool _visible
 is this node visible More...
 
var _visible
 is this node visible More...
 
local _visible
 is this node visible More...
 
bool _ignoreAnchorPointForPosition
 true if the Anchor Point will be (0,0) when you position the Node, false otherwise. More...
 
var _ignoreAnchorPointForPosition
 true if the Anchor Point will be (0,0) when you position the Node, false otherwise. More...
 
local _ignoreAnchorPointForPosition
 true if the Anchor Point will be (0,0) when you position the Node, false otherwise. More...
 
bool _reorderChildDirty
 children order dirty flag More...
 
bool _isTransitionFinished
 flag to indicate whether the transition was finished More...
 
var _isTransitionFinished
 flag to indicate whether the transition was finished More...
 
local _isTransitionFinished
 flag to indicate whether the transition was finished More...
 
int _scriptHandler
 script handler for onEnter() & onExit(), used in Javascript binding and Lua binding. More...
 
var _scriptHandler
 script handler for onEnter() & onExit(), used in Javascript binding and Lua binding. More...
 
local _scriptHandler
 script handler for onEnter() & onExit(), used in Javascript binding and Lua binding. More...
 
int _updateScriptHandler
 script handler for update() callback per frame, which is invoked from lua & javascript. More...
 
var _updateScriptHandler
 script handler for update() callback per frame, which is invoked from lua & javascript. More...
 
local _updateScriptHandler
 script handler for update() callback per frame, which is invoked from lua & javascript. More...
 
ccScriptType _scriptType
 type of script binding, lua or javascript More...
 
var _scriptType
 type of script binding, lua or javascript More...
 
local _scriptType
 type of script binding, lua or javascript More...
 
ComponentContainer_componentContainer
 Dictionary of components. More...
 
var _componentContainer
 Dictionary of components. More...
 
local _componentContainer
 Dictionary of components. More...
 
PhysicsBody * _physicsBody
 the physicsBody the node have More...
 
GLubyte _displayedOpacity
var _displayedOpacity
local _displayedOpacity
GLubyte _realOpacity
var _realOpacity
local _realOpacity
Color3B _displayedColor
var _displayedColor
local _displayedColor
Color3B _realColor
var _realColor
local _realColor
bool _cascadeColorEnabled
var _cascadeColorEnabled
local _cascadeColorEnabled
bool _cascadeOpacityEnabled
var _cascadeOpacityEnabled
local _cascadeOpacityEnabled
- Protected Attributes inherited from Ref
unsigned int _referenceCount
 count of references More...
 

Additional Inherited Members

- Static Public Attributes inherited from Node
static const int INVALID_TAG = -1
 Default tag used for all the nodes. More...
 
var INVALID_TAG = -1
 Default tag used for all the nodes. More...
 
local INVALID_TAG = -1
 Default tag used for all the nodes. More...
 
- Static Protected Attributes inherited from Node
static int s_globalOrderOfArrival
var s_globalOrderOfArrival
local s_globalOrderOfArrival

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 ParticleSystemQuad)
  • 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;

Member Enumeration Documentation

anonymous enum
Enumerator
DURATION_INFINITY 

The Particle emitter lives forever.

START_SIZE_EQUAL_TO_END_SIZE 

The starting size of the particle is equal to the ending size.

START_RADIUS_EQUAL_TO_END_RADIUS 

The starting radius of the particle is equal to the ending radius.

enum Mode
strong
Enumerator
GRAVITY 
RADIUS 
enum PositionType
strong

possible types of particle positions

Enumerator
FREE 

Living particles are attached to the world and are unaffected by emitter repositioning.

RELATIVE 

Living particles are attached to the world but will follow the emitter repositioning.

Use case: Attach an emitter to an sprite, and you want that the emitter follows the sprite.

GROUPED 

Living particles are attached to the emitter and are translated along with it.

Constructor & Destructor Documentation

ParticleSystem ( )
protected
virtual ~ParticleSystem ( )
protectedvirtual

Member Function Documentation

bool addParticle ( )

Add a particle to the emitter.

static ParticleSystem* create ( const std::string &  plistFile)
static

creates an initializes a ParticleSystem from a plist file.

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

Since
v2.0
static ParticleSystem*
createWithTotalParticles
( int  numberOfParticles)
static

create a system with a fixed number of particles

float getAngle ( ) const
inline

angle and angle variation of each particle

float getAngleVar ( ) const
inline

angle variance of each particle

int getAtlasIndex ( ) const
inline
virtual ParticleBatchNode*
getBatchNode
( ) const
virtual
virtual const BlendFunc&
getBlendFunc
( ) const
overridevirtual

Returns the blending function that is currently being used.

Returns
A BlendFunc structure with source and destination factor which specified pixel arithmetic.

Implements BlendProtocol.

float getDuration ( ) const
inline

How many seconds the emitter will run.

-1 means 'forever'

float getEmissionRate ( ) const
inline

emission rate of the particles

Mode getEmitterMode ( ) const
inline

Switch between different kind of emitter modes:

  • kParticleModeGravity: uses gravity, speed, radial and tangential acceleration
  • kParticleModeRadius: uses radius movement + rotation
const Color4F& getEndColor ( ) const
inline

end color and end color variation of each particle

const Color4F& getEndColorVar ( ) const
inline

end color variance of each particle

virtual float getEndRadius ( ) const
virtual
virtual float getEndRadiusVar ( ) const
virtual
float getEndSize ( ) const
inline

end size in pixels of each particle

float getEndSizeVar ( ) const
inline

end size variance in pixels of each particle

float getEndSpin ( ) const
inline
float getEndSpinVar ( ) const
inline
virtual const Point& getGravity ( )
virtual
float getLife ( ) const
inline

life, and life variation of each particle

float getLifeVar ( ) const
inline

life variance of each particle

CC_DEPRECATED_ATTRIBUTE bool
getOpacityModifyRGB
( ) const
inline
unsigned int getParticleCount ( ) const
inline

Quantity of particles that are being simulated at the moment.

PositionType getPositionType ( ) const
inline

particles movement type: Free or Grouped

Since
v0.8
const Point& getPosVar ( ) const
inline

Position variance of the emitter.

virtual float getRadialAccel ( ) const
virtual
virtual float getRadialAccelVar ( ) const
virtual
virtual float getRotatePerSecond ( ) const
virtual
virtual float getRotatePerSecondVar ( ) const
virtual
virtual bool getRotationIsDir ( ) const
virtual
const Point& getSourcePosition ( ) const
inline

sourcePosition of the emitter

virtual float getSpeed ( ) const
virtual
virtual float getSpeedVar ( ) const
virtual
const Color4F& getStartColor ( ) const
inline

start color of each particle

const Color4F& getStartColorVar ( ) const
inline

start color variance of each particle

virtual float getStartRadius ( ) const
virtual
virtual float getStartRadiusVar ( ) const
virtual
float getStartSize ( ) const
inline

start size in pixels of each particle

float getStartSizeVar ( ) const
inline

size variance in pixels of each particle

float getStartSpin ( ) const
inline
float getStartSpinVar ( ) const
inline
virtual float getTangentialAccel ( ) const
virtual
virtual float getTangentialAccelVar ( ) const
virtual
virtual Texture2D* getTexture ( ) const
overridevirtual

Returns the currently used texture.

Returns
The texture that is currenlty being used.

Implements TextureProtocol.

virtual int getTotalParticles ( ) const
virtual

maximum particles of the system

bool init ( )
protectedvirtual

initializes a ParticleSystem

Reimplemented from Node.

void initParticle ( tParticle particle)

Initializes a particle.

bool initWithDictionary ( ValueMap dictionary)
protected

initializes a QuadParticleSystem from a Dictionary.

Since
v0.99.3
bool initWithDictionary ( ValueMap dictionary,
const std::string &  dirname 
)
protected

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

Since
v2.1
bool initWithFile ( const std::string &  plistFile)
protected

initializes a ParticleSystem from a plist file.

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

Since
v0.99.3
virtual bool initWithTotalParticles ( int  numberOfParticles)
protectedvirtual
virtual bool isActive ( ) const
virtual
virtual bool isAutoRemoveOnFinish ( ) const
virtual
virtual bool isBlendAdditive ( ) const
virtual
bool isFull ( )

whether or not the system is full

bool isOpacityModifyRGB ( void  ) const
inlinevirtual

Reimplemented from Node.

virtual void onEnter ( )
overridevirtual

Event callback that is invoked every time when Node enters the 'stage'.

If the Node enters the 'stage' with a transition, this event is called when the transition starts. During onEnter you can't access a "sister/brother" node. If you override onEnter, you shall call its parent's one, e.g., Node::onEnter().

Reimplemented from Node.

virtual void onExit ( )
overridevirtual

Event callback that is invoked every time the Node leaves the 'stage'.

If the Node leaves the 'stage' with a transition, this event is called when the transition finishes. During onExit you can't access a sibling node. If you override onExit, you shall call its parent's one, e.g., Node::onExit().

Reimplemented from Node.

virtual void postStep ( )
virtual

should be overridden by subclasses

Reimplemented in ParticleSystemQuad.

void resetSystem ( )

Kill all living particles.

void setAngle ( float  angle)
inline
void setAngleVar ( float  angleVar)
inline
void setAtlasIndex ( int  index)
inline
virtual void setAutoRemoveOnFinish ( bool  var)
virtual
virtual void setBatchNode ( ParticleBatchNode batchNode)
virtual

Reimplemented in ParticleSystemQuad.

virtual void setBlendAdditive ( bool  value)
virtual
virtual void setBlendFunc ( const BlendFunc blendFunc)
overridevirtual
When this function bound into js or lua,the parameter will be changed
In js: var setBlendFunc(var src, var dst)
In lua: local setBlendFunc(local src, local dst)

Implements BlendProtocol.

void setDuration ( float  duration)
inline
void setEmissionRate ( float  rate)
inline
void setEmitterMode ( Mode  mode)
inline
void setEndColor ( const Color4F color)
inline
void setEndColorVar ( const Color4F color)
inline
virtual void setEndRadius ( float  endRadius)
virtual
virtual void setEndRadiusVar ( float  endRadiusVar)
virtual
void setEndSize ( float  endSize)
inline
void setEndSizeVar ( float  sizeVar)
inline
void setEndSpin ( float  endSpin)
inline
void setEndSpinVar ( float  endSpinVar)
inline
virtual void setGravity ( const Point g)
virtual
void setLife ( float  life)
inline
void setLifeVar ( float  lifeVar)
inline
void setOpacityModifyRGB ( bool  opacityModifyRGB)
inlinevirtual

does the alpha value modify color

Reimplemented from Node.

void setPositionType ( PositionType  type)
inline
void setPosVar ( const Point pos)
inline
virtual void setRadialAccel ( float  t)
virtual
virtual void setRadialAccelVar ( float  t)
virtual
virtual void setRotatePerSecond ( float  degrees)
virtual
virtual void setRotatePerSecondVar ( float  degrees)
virtual
virtual void setRotation ( float  rotation)
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
rotationThe rotation of the node in degrees.

Reimplemented from Node.

virtual void setRotationIsDir ( bool  t)
virtual
virtual void setScale ( float  scale)
virtual

Sets the scale (x,y,z) of the node.

It is a scaling factor that multiplies the width, height and depth of the node and its children.

Parameters
scaleThe scale factor for both X and Y axis.

Reimplemented from Node.

virtual void setScaleX ( float  scaleX)
virtual

Sets the scale (x) of the node.

It is a scaling factor that multiplies the width of the node and its children.

Parameters
scaleXThe scale factor on X axis.

Reimplemented from Node.

virtual void setScaleY ( float  scaleY)
virtual

Sets the scale (y) of the node.

It is a scaling factor that multiplies the height of the node and its children.

Parameters
scaleYThe scale factor on Y axis.

Reimplemented from Node.

void setSourcePosition ( const Point pos)
inline
virtual void setSpeed ( float  speed)
virtual
virtual void setSpeedVar ( float  speed)
virtual
void setStartColor ( const Color4F color)
inline
void setStartColorVar ( const Color4F color)
inline
virtual void setStartRadius ( float  startRadius)
virtual
virtual void setStartRadiusVar ( float  startRadiusVar)
virtual
void setStartSize ( float  startSize)
inline
void setStartSizeVar ( float  sizeVar)
inline
void setStartSpin ( float  spin)
inline
void setStartSpinVar ( float  pinVar)
inline
virtual void setTangentialAccel ( float  t)
virtual
virtual void setTangentialAccelVar ( float  t)
virtual
virtual void setTexture ( Texture2D texture)
overridevirtual

Sets a new texuture.

It will be retained.

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

Implements TextureProtocol.

Reimplemented in ParticleSystemQuad.

virtual void setTotalParticles ( int  totalParticles)
virtual

Reimplemented in ParticleSystemQuad.

void stopSystem ( )

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

virtual void update ( float  dt)
overridevirtual

Reimplemented from Node.

virtual void updateBlendFunc ( )
protectedvirtual
virtual void updateQuadWithParticle ( tParticle particle,
const Point newPosition 
)
virtual

should be overridden by subclasses

Reimplemented in ParticleSystemQuad.

virtual void updateWithNoTime ( void  )
virtual

Member Data Documentation

int _allocatedParticles
protected
float _angle
protected

angle and angle variation of each particle

float _angleVar
protected

angle variance of each particle

int _atlasIndex
protected
ParticleBatchNode* _batchNode
protected

weak reference to the SpriteBatchNode that renders the Sprite

BlendFunc _blendFunc
protected

conforms to CocosNodeTexture protocol

std::string _configName
protected
float _duration
protected

How many seconds the emitter will run.

-1 means 'forever'

float _elapsed
protected

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

float _emissionRate
protected

emission rate of the particles

float _emitCounter
protected

How many particles can be emitted per second.

Mode _emitterMode
protected

Switch between different kind of emitter modes:

  • kParticleModeGravity: uses gravity, speed, radial and tangential acceleration
  • kParticleModeRadius: uses radius movement + rotation
Color4F _endColor
protected

end color and end color variation of each particle

Color4F _endColorVar
protected

end color variance of each particle

float _endSize
protected

end size in pixels of each particle

float _endSizeVar
protected

end size variance in pixels of each particle

float _endSpin
protected
float _endSpinVar
protected
bool _isActive
protected

Is the emitter active.

bool _isAutoRemoveOnFinish
protected

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

By default it is false.

Since
v0.8
bool _isBlendAdditive
protected

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;
float _life
protected

life, and life variation of each particle

float _lifeVar
protected

life variance of each particle

bool _opacityModifyRGB
protected

does the alpha value modify color

int _particleCount
protected

Quantity of particles that are being simulated at the moment.

int _particleIdx
protected

particle idx

tParticle* _particles
protected

Array of particles.

std::string _plistFile
protected
PositionType _positionType
protected

particles movement type: Free or Grouped

Since
v0.8
Point _posVar
protected

Position variance of the emitter.

Point _sourcePosition
protected

sourcePosition of the emitter

Color4F _startColor
protected

start color of each particle

Color4F _startColorVar
protected

start color variance of each particle

float _startSize
protected

start size in pixels of each particle

float _startSizeVar
protected

size variance in pixels of each particle

float _startSpin
protected
float _startSpinVar
protected
Texture2D* _texture
protected

conforms to CocosNodeTexture protocol

int _totalParticles
protected

maximum particles of the system

bool _transformSystemDirty
protected
int _yCoordFlipped
protected

does FlippedY variance of each particle

float endRadius

The ending radius of the particles.

Only available in 'Radius' mode.

float endRadiusVar

The ending radius variance of the particles.

Only available in 'Radius' mode.

Point gravity

Gravity value.

Only available in 'Gravity' mode.

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)

float radialAccel

radial acceleration of each particle.

Only available in 'Gravity' mode.

float radialAccelVar

radial acceleration variance of each particle.

Only available in 'Gravity' mode.

float rotatePerSecond

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

Only available in 'Radius' mode.

float rotatePerSecondVar

Variance in degrees for rotatePerSecond.

Only available in 'Radius' mode.

bool rotationIsDir

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

float speed

speed of each particle.

Only available in 'Gravity' mode.

float speedVar

speed variance of each particle.

Only available in 'Gravity' mode.

float startRadius

The starting radius of the particles.

Only available in 'Radius' mode.

float startRadiusVar

The starting radius variance of the particles.

Only available in 'Radius' mode.

float tangentialAccel

tangential acceleration of each particle.

Only available in 'Gravity' mode.

float tangentialAccelVar

tangential acceleration variance of each particle.

Only available in 'Gravity' mode.


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