Axmol Engine 2.4.0-258ceca
Loading...
Searching...
No Matches
ParticleSystem Class Reference

Particle System base class. More...

#include <ParticleSystem.h>

Inherits Node.

Inherited by ParticleSystemQuad.

Public Types

enum class  Mode
 Mode @js cc.ParticleSystem.MODE_GRAVITY;.
 
enum class  PositionType { }
 PositionType Types of particle positioning. More...
 
enum class  TexAnimDir { }
 TexAnimDir Texture animation direction for the particles. More...
 
enum  {
  DURATION_INFINITY = -1 , START_SIZE_EQUAL_TO_END_SIZE = -1 , START_RADIUS_EQUAL_TO_END_RADIUS = -1 , SIMULATION_USE_PARTICLE_LIFETIME = -1 ,
  SIMULATION_USE_GAME_ANIMATION_INTERVAL = -1
}
 

Public Member Functions

void resetSystem ()
 Kill all living particles.
 
bool isFull ()
 Whether or not the system is full.
 
virtual void updateParticleQuads ()
 Update the verts position data of particle, should be overridden by subclasses.
 
virtual void postStep ()
 Update the VBO verts buffer which does not use batch node, should be overridden by subclasses.
 
virtual void updateWithNoTime ()
 Call the update method with no time.
 
virtual bool isAutoRemoveOnFinish () const
 Whether or not the particle system removed self on finish.
 
virtual void setAutoRemoveOnFinish (bool var)
 Set the particle system auto removed it self on finish.
 
virtual const Vec2getGravity ()
 Gets the gravity.
 
virtual void setGravity (const Vec2 &g)
 Sets the gravity.
 
virtual float getSpeed () const
 Gets the speed.
 
virtual void setSpeed (float speed)
 Sets the speed.
 
virtual float getSpeedVar () const
 Gets the speed variance.
 
virtual void setSpeedVar (float speed)
 Sets the speed variance.
 
virtual float getTangentialAccel () const
 Gets the tangential acceleration.
 
virtual void setTangentialAccel (float t)
 Sets the tangential acceleration.
 
virtual float getTangentialAccelVar () const
 Gets the tangential acceleration variance.
 
virtual void setTangentialAccelVar (float t)
 Sets the tangential acceleration variance.
 
virtual float getRadialAccel () const
 Gets the radial acceleration.
 
virtual void setRadialAccel (float t)
 Sets the radial acceleration.
 
virtual float getRadialAccelVar () const
 Gets the radial acceleration variance.
 
virtual void setRadialAccelVar (float t)
 Sets the radial acceleration variance.
 
virtual bool getRotationIsDir () const
 Whether or not the rotation of each particle to its direction.
 
virtual void setRotationIsDir (bool t)
 Sets the rotation of each particle to its direction.
 
virtual float getStartRadius () const
 Gets the start radius.
 
virtual void setStartRadius (float startRadius)
 Sets the start radius.
 
virtual float getStartRadiusVar () const
 Gets the start radius variance.
 
virtual void setStartRadiusVar (float startRadiusVar)
 Sets the start radius variance.
 
virtual float getEndRadius () const
 Gets the end radius.
 
virtual void setEndRadius (float endRadius)
 Sets the end radius.
 
virtual float getEndRadiusVar () const
 Gets the end radius variance.
 
virtual void setEndRadiusVar (float endRadiusVar)
 Sets the end radius variance.
 
virtual float getRotatePerSecond () const
 Gets the number of degrees to rotate a particle around the source pos per second.
 
virtual void setRotatePerSecond (float degrees)
 Sets the number of degrees to rotate a particle around the source pos per second.
 
virtual float getRotatePerSecondVar () const
 Gets the rotate per second variance.
 
virtual void setRotatePerSecondVar (float degrees)
 Sets the rotate per second variance.
 
virtual void setScale (float s) override
 Sets the scale (x,y,z) of the node.
 
virtual void setRotation (float newRotation) override
 Sets the rotation (angle) of the node in degrees.
 
virtual void setScaleX (float newScaleX) override
 Sets the scale (x) of the node.
 
virtual void setScaleY (float newScaleY) override
 Sets the scale (y) of the node.
 
virtual bool isActive () const
 Whether or not the particle system is active.
 
virtual bool isBlendAdditive () const
 Whether or not the particle system is blend additive.
 
virtual void setBlendAdditive (bool value)
 Sets the particle system blend additive.
 
virtual ParticleBatchNodegetBatchNode () const
 Gets the batch node.
 
virtual void setBatchNode (ParticleBatchNode *batchNode)
 Sets the batch node.
 
int getAtlasIndex () const
 Gets the index of system in batch node array.
 
void setAtlasIndex (int index)
 Sets the index of system in batch node array.
 
unsigned int getParticleCount () const
 Gets the Quantity of particles that are being simulated at the moment.
 
float getDuration () const
 Gets how many seconds the emitter will run.
 
void setDuration (float duration)
 Sets how many seconds the emitter will run.
 
const Vec2getSourcePosition () const
 Gets the source position of the emitter.
 
void setSourcePosition (const Vec2 &pos)
 Sets the source position of the emitter.
 
const Vec2getPosVar () const
 Gets the position variance of the emitter.
 
void setPosVar (const Vec2 &pos)
 Sets the position variance of the emitter.
 
float getLife () const
 Gets the life of each particle.
 
void setLife (float life)
 Sets the life of each particle.
 
float getLifeVar () const
 Gets the life variance of each particle.
 
void setLifeVar (float lifeVar)
 Sets the life variance of each particle.
 
float getAngle () const
 Gets the angle of each particle.
 
void setAngle (float angle)
 Sets the angle of each particle.
 
float getAngleVar () const
 Gets the angle variance of each particle.
 
void setAngleVar (float angleVar)
 Sets the angle variance of each particle.
 
Mode getEmitterMode () const
 Switch between different kind of emitter modes:
 
void setEmitterMode (Mode mode)
 Sets the mode of the emitter.
 
float getStartSize () const
 Gets the start size in pixels of each particle.
 
void setStartSize (float startSize)
 Sets the start size in pixels of each particle.
 
float getStartSizeVar () const
 Gets the start size variance in pixels of each particle.
 
void setStartSizeVar (float sizeVar)
 Sets the start size variance in pixels of each particle.
 
float getEndSize () const
 Gets the end size in pixels of each particle.
 
void setEndSize (float endSize)
 Sets the end size in pixels of each particle.
 
float getEndSizeVar () const
 Gets the end size variance in pixels of each particle.
 
void setEndSizeVar (float sizeVar)
 Sets the end size variance in pixels of each particle.
 
const Color4FgetStartColor () const
 Gets the start color of each particle.
 
void setStartColor (const Color4F &color)
 Sets the start color of each particle.
 
const Color4FgetStartColorVar () const
 Gets the start color variance of each particle.
 
void setStartColorVar (const Color4F &color)
 Sets the start color variance of each particle.
 
const Color4FgetEndColor () const
 Gets the end color and end color variation of each particle.
 
void setEndColor (const Color4F &color)
 Sets the end color and end color variation of each particle.
 
const Color4FgetEndColorVar () const
 Gets the end color variance of each particle.
 
void setEndColorVar (const Color4F &color)
 Sets the end color variance of each particle.
 
void useHSV (bool hsv)
 Sets wether to use HSV color system.
 
float getHue () const
 Gets the hue of each particle.
 
void setHue (float hue)
 Sets the hue of each particle.
 
float getHueVar () const
 Gets the hue variance of each particle.
 
void setHueVar (float hue)
 Sets the hue variance of each particle.
 
const HSVgetHSV () const
 Gets the HSV color of each particle.
 
void setHSV (const HSV &hsv)
 Sets the HSV color of each particle.
 
const HSVgetHSVVar () const
 Gets the HSV color variance of each particle.
 
void setHSVVar (const HSV &hsv)
 Sets the HSV color variance of each particle.
 
float getStartSpin () const
 Gets the start spin of each particle.
 
void setStartSpin (float spin)
 Sets the start spin of each particle.
 
float getStartSpinVar () const
 Gets the start spin variance of each particle.
 
void setStartSpinVar (float pinVar)
 Sets the start spin variance of each particle.
 
float getEndSpin () const
 Gets the end spin of each particle.
 
void setEndSpin (float endSpin)
 Sets the end spin of each particle.
 
float getEndSpinVar () const
 Gets the end spin variance of each particle.
 
void setEndSpinVar (float endSpinVar)
 Sets the end spin variance of each particle.
 
float getSpawnAngle ()
 Gets the spawn angle of each particle.
 
void setSpawnAngle (float angle)
 Sets the spawn angle of each particle.
 
float getSpawnAngleVar ()
 Sets the spawn angle variance of each particle.
 
void setSpawnAngleVar (float angle)
 Sets the spawn angle variance of each particle.
 
float getSpawnFadeIn ()
 Gets the spawn opacity fade in time of each particle.
 
void setSpawnFadeIn (float time)
 Sets the spawn opacity fade in time of each particle when it's created.
 
float getSpawnFadeInVar ()
 Gets the spawn opacity fade in time variance of each particle.
 
void setSpawnFadeInVar (float time)
 Sets the spawn opacity fade in time variance of each particle when it's created.
 
float getSpawnScaleIn ()
 Gets the spawn scale fade in time of each particle.
 
void setSpawnScaleIn (float time)
 Sets the spawn scale fade in time of each particle when it's created.
 
float getSpawnScaleInVar ()
 Gets the spawn scale fade in time variance of each particle.
 
void setSpawnScaleInVar (float time)
 Sets the spawn scale fade in time variance of each particle when it's created.
 
float getEmissionRate () const
 Gets the emission rate of the particles.
 
void setEmissionRate (float rate)
 Sets the emission rate of the particles.
 
virtual int getTotalParticles () const
 Gets the maximum particles of the system.
 
virtual void setTotalParticles (int totalParticles)
 Sets the maximum particles of the system.
 
void setOpacityModifyRGB (bool opacityModifyRGB) override
 does the alpha value modify color
 
bool isOpacityModifyRGB () const override
 If node opacity will modify the RGB color value, then you should override this method and return true.
 
void setLifeAnimation (bool enabled)
 Enables or disables tex coord animations that are set based on particle life.
 
void setEmitterAnimation (bool enabled)
 Enables or disables tex coord animations that are set by the emitter randomly when a particle is emitted.
 
void setLoopAnimation (bool enabled)
 Enables or disables tex coord animations that are used to make particles play a sequence forever until they die.
 
int getTotalAnimationIndices ()
 Gets the total number of indices.
 
void setAnimationReverse (bool reverse)
 Sets wether to start from first cell and go forwards (normal) or last cell and go backwards (reversed)
 
void resetAnimationIndices ()
 Resets the count of indices to 0 and empties the animation index array.
 
void resetAnimationDescriptors ()
 Empties the container of animation descriptors.
 
void setMultiAnimationRandomSpecific (const std::vector< unsigned short > &animations)
 Choose what animation descriptors are to be selected at random for particles.
 
void setMultiAnimationRandom ()
 Choose ALL animation descriptors to be selected at random for particles.
 
void setAnimationIndicesAtlas ()
 Add all particle animation indices based on cells size and direction spicified using a texture atlas.
 
void setAnimationIndicesAtlas (unsigned int unifiedCellSize, TexAnimDir direction=TexAnimDir::HORIZONTAL)
 Add all particle animation indices based on cell size and direction spicified if the method of rendering preferred is texture atlas.
 
bool addAnimationIndex (std::string_view frameName)
 Add a particle animation index based on tex coords spicified using a sprite frame.
 
bool addAnimationIndex (unsigned short index, std::string_view frameName)
 Add a particle animation index based on tex coords spicified using a sprite frame.
 
bool addAnimationIndex (ax::SpriteFrame *frame)
 Add a particle animation index based on tex coords spicified using a sprite frame.
 
bool addAnimationIndex (unsigned short index, ax::SpriteFrame *frame)
 Add a particle animation index based on tex coords spicified using a sprite frame.
 
bool addAnimationIndex (unsigned short index, ax::Rect rect, bool rotated=false)
 Add a particle animation index based on tex coords spicified.
 
void setRectForUndefinedIndices (ax::Rect rect)
 You can specify what rect is used if an index in an animation descriptor wasn't found.
 
void setAnimationDescriptor (unsigned short indexOfDescriptor, float time, float timeVariance, const std::vector< unsigned short > &indices, bool reverse=false)
 Add a particle animation descriptor with an index.
 
void setAnimationDescriptor (const std::vector< unsigned short > &indices, bool reverse=false)
 Add a particle animation descriptor with the index 0.
 
void setAnimationSpeedTimescaleIndependent (bool independent)
 Sets wether the animation descriptors should follow the time scale of the system or not.
 
void setEmissionShapes (bool enabled)
 Sets wether to use emission shapes for this particle system or not.
 
void resetEmissionShapes ()
 Resets the count of emission shapes to 0 and empties the emission shapes array.
 
void addEmissionShape (EmissionShape shape)
 Adds an emission shape to the system.
 
void setEmissionShape (unsigned short index, EmissionShape shape)
 Updates an existing emission shape or adds it.
 
PositionType getPositionType () const
 Gets the particles movement type: Free or Grouped.
 
void setPositionType (PositionType type)
 Sets the particles movement type: Free or Grouped.
 
void simulate (float seconds=SIMULATION_USE_PARTICLE_LIFETIME, float frameRate=SIMULATION_USE_GAME_ANIMATION_INTERVAL)
 Advance the particle system and make it seem like it ran for this many seconds.
 
void resimulate (float seconds=SIMULATION_USE_PARTICLE_LIFETIME, float frameRate=SIMULATION_USE_GAME_ANIMATION_INTERVAL)
 Resets the particle system and then advances the particle system and make it seem like it ran for this many seconds.
 
virtual void onEnter () override
 Event callback that is invoked every time when Node enters the 'stage'.
 
virtual void onExit () override
 Event callback that is invoked every time the Node leaves the 'stage'.
 
virtual void update (float dt) override
 Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live".
 
virtual void setBlendFunc (const BlendFunc &blendFunc) override
 
virtual const BlendFuncgetBlendFunc () const override
 @js NA @lua NA
 
 ParticleSystem ()
 @js ctor
 
virtual ~ParticleSystem ()
 @js NA @lua NA
 
bool init () override
 initializes a ParticleSystem
 
bool initWithFile (std::string_view plistFile)
 initializes a ParticleSystem from a plist file.
 
bool initWithDictionary (const ValueMap &dictionary)
 initializes a QuadParticleSystem from a Dictionary.
 
bool initWithDictionary (const ValueMap &dictionary, std::string_view dirname)
 initializes a particle system from a NSDictionary and the path from where to load the png
 
virtual bool initWithTotalParticles (int numberOfParticles)
 Initializes a system with a fixed number of particles.
 
virtual bool isPaused () const
 Are the emissions paused.
 
virtual float getFixedFPS ()
 Gets the fixed frame rate count of the particle system.
 
virtual void setFixedFPS (float frameRate=0.0F)
 Sets the fixed frame rate count of the particle system.
 
virtual float getTimeScale ()
 Gets the time scale of the particle system.
 
virtual void setTimeScale (float scale=1.0F)
 Sets the time scale of the particle system.
 
implement Playable Protocol
- Public Member Functions inherited from Node
virtual bool isRunning () const
 Returns whether or not the node is "running".
 
void scheduleUpdateWithPriorityLua (int handler, int priority)
 Schedules for lua script.
 
virtual void cleanup ()
 Stops all running actions and schedulers.
 
virtual void draw (Renderer *renderer, const Mat4 &transform, uint32_t flags)
 Override this method to draw your own node.
 
virtual void visit (Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags)
 Visits this node's children and draw them recursively.
 
virtual ScenegetScene () const
 Returns the Scene that contains the Node.
 
virtual Rect getBoundingBox () const
 Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system.
 
virtual void setEventDispatcher (EventDispatcher *dispatcher)
 Set event dispatcher for scene.
 
virtual EventDispatchergetEventDispatcher () const
 Get the event dispatcher of scene.
 
virtual uint8_t getOpacity () const
 Return the node's opacity.
 
virtual uint8_t getDisplayedOpacity () const
 Return the node's display opacity.
 
virtual void setOpacity (uint8_t opacity)
 Change node opacity.
 
virtual void updateDisplayedOpacity (uint8_t parentOpacity)
 Update the displayed opacity of node with it's parent opacity;.
 
virtual bool isCascadeOpacityEnabled () const
 Whether cascadeOpacity is enabled or not.
 
virtual void setCascadeOpacityEnabled (bool cascadeOpacityEnabled)
 Change node's cascadeOpacity property.
 
virtual const Color3BgetColor () const
 Query node's color value.
 
virtual const Color3BgetDisplayedColor () const
 Query node's displayed color.
 
virtual void setColor (const Color3B &color)
 Change the color of node.
 
virtual void updateDisplayedColor (const Color3B &parentColor)
 Update node's displayed color with its parent color.
 
virtual bool isCascadeColorEnabled () const
 Query whether cascadeColor is enabled or not.
 
virtual void setCascadeColorEnabled (bool cascadeColorEnabled)
 If you want node's color affect the children node's color, then set it to true.
 
void setOnEnterCallback (const std::function< void()> &callback)
 Set the callback of event onEnter.
 
const std::function< void()> & getOnEnterCallback () const
 Get the callback of event onEnter.
 
void setOnExitCallback (const std::function< void()> &callback)
 Set the callback of event onExit.
 
const std::function< void()> & getOnExitCallback () const
 Get the callback of event onExit.
 
void setOnEnterTransitionDidFinishCallback (const std::function< void()> &callback)
 Set the callback of event EnterTransitionDidFinish.
 
const std::function< void()> & getOnEnterTransitionDidFinishCallback () const
 Get the callback of event EnterTransitionDidFinish.
 
void setOnExitTransitionDidStartCallback (const std::function< void()> &callback)
 Set the callback of event ExitTransitionDidStart.
 
const std::function< void()> & getOnExitTransitionDidStartCallback () const
 Get the callback of event ExitTransitionDidStart.
 
unsigned short getCameraMask () const
 get & set camera mask, the node is visible by the camera whose camera flag & node's camera mask is true
 
virtual void setCameraMask (unsigned short mask, bool applyChildren=true)
 Modify the camera mask for current node.
 
void applyMaskOnEnter (bool applyChildren)
 Should addChild() make the child follow it's parent's mask?
 
virtual bool setProgramState (backend::ProgramState *programState, bool ownPS=false)
 Sets ProgramState with retain.
 
backend::ProgramState * setProgramStateByProgramId (uint64_t progId)
 Sets ProgramState by programId.
 
virtual void setLocalZOrder (int localZOrder)
 LocalZOrder is the 'key' used to sort the node relative to its siblings.
 
void updateOrderOfArrival ()
 !
 
virtual int getLocalZOrder () const
 Gets the local Z order of this node.
 
virtual void setGlobalZOrder (float globalZOrder)
 Defines the order in which the nodes are renderer.
 
virtual float getGlobalZOrder () const
 Returns the Node's Global Z Order.
 
virtual float getScaleX () const
 Returns the scale factor on X axis of this node.
 
virtual float getScaleY () const
 Returns the scale factor on Y axis of this node.
 
virtual void setScaleZ (float scaleZ)
 Changes the scale factor on Z axis of this node.
 
virtual float getScaleZ () const
 Returns the scale factor on Z axis of this node.
 
virtual float getScale () const
 Gets the scale factor of the node, when X and Y have the same scale factor.
 
virtual void setScale (float scaleX, float scaleY)
 Sets the scale (x,y) of the node.
 
virtual void setPosition (const Vec2 &position)
 Sets the position (x,y) of the node in its parent's coordinate system.
 
virtual void setPositionNormalized (const Vec2 &position)
 Sets the position (x,y) using values between 0 and 1.
 
virtual const Vec2getPosition () const
 Gets the position (x,y) of the node in its parent's coordinate system.
 
virtual const Vec2getPositionNormalized () const
 Returns the normalized position.
 
virtual void setPosition (float x, float y)
 Sets the position (x,y) of the node in its parent's coordinate system.
 
virtual void getPosition (float *x, float *y) const
 Gets position in a more efficient way, returns two number instead of a Vec2 object.
 
virtual void setPositionX (float x)
 Gets/Sets x or y coordinate individually for position.
 
virtual float getPositionX () const
 Gets the x coordinate of the node in its parent's coordinate system.
 
virtual void setPositionY (float y)
 Sets the y coordinate of the node in its parent's coordinate system.
 
virtual float getPositionY () const
 Gets the y coordinate of the node in its parent's coordinate system.
 
virtual void setPosition3D (const Vec3 &position)
 Sets the position (X, Y, and Z) in its parent's coordinate system.
 
virtual Vec3 getPosition3D () const
 Returns the position (X,Y,Z) in its parent's coordinate system.
 
virtual void setPositionZ (float positionZ)
 Sets the 'z' coordinate in the position.
 
virtual float getPositionZ () const
 Gets position Z coordinate of this node.
 
virtual void setSkewX (float skewX)
 Changes the X skew angle of the node in degrees.
 
virtual float getSkewX () const
 Returns the X skew angle of the node in degrees.
 
virtual void setSkewY (float skewY)
 Changes the Y skew angle of the node in degrees.
 
virtual float getSkewY () const
 Returns the Y skew angle of the node in degrees.
 
virtual void setAnchorPoint (const Vec2 &anchorPoint)
 Sets the anchor point in percent.
 
virtual const Vec2getAnchorPoint () const
 Returns the anchor point in percent.
 
virtual const Vec2getAnchorPointInPoints () const
 Returns the anchorPoint in absolute pixels.
 
virtual void setContentSize (const Vec2 &contentSize)
 Sets the untransformed size of the node.
 
virtual const Vec2getContentSize () const
 Returns the untransformed size of the node.
 
virtual bool hitTest (const Vec2 &worldPoint) const
 The basic node hit test, since axmol-1.0.
 
virtual void setVisible (bool visible)
 Sets whether the node is visible.
 
virtual bool isVisible () const
 Determines if the node is visible.
 
virtual float getRotation () const
 Returns the rotation of the node in degrees.
 
virtual void setRotation3D (const Vec3 &rotation)
 Sets the rotation (X,Y,Z) in degrees.
 
virtual Vec3 getRotation3D () const
 Returns the rotation (X,Y,Z) in degrees.
 
virtual void setRotationQuat (const Quaternion &quat)
 Set rotation by quaternion.
 
virtual Quaternion getRotationQuat () const
 Return the rotation by quaternion, Note that when _rotationZ_X == _rotationZ_Y, the returned quaternion equals to RotationZ_X * RotationY * RotationX, it equals to RotationY * RotationX otherwise.
 
virtual void setRotationSkewX (float rotationX)
 Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew.
 
virtual float getRotationSkewX () const
 Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew.
 
virtual void setRotationSkewY (float rotationY)
 Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
 
virtual float getRotationSkewY () const
 Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew.
 
virtual void setIgnoreAnchorPointForPosition (bool ignore)
 Sets whether the anchor point will be (0,0) when you position this node.
 
virtual bool isIgnoreAnchorPointForPosition () const
 Gets whether the anchor point will be (0,0) when you position this node.
 
virtual int getTag () const
 Returns a tag that is used to identify the node easily.
 
virtual void setTag (int tag)
 Changes the tag that is used to identify the node easily.
 
virtual std::string_view getName () const
 Returns a string that is used to identify the node.
 
virtual void setName (std::string_view name)
 Changes the name that is used to identify the node easily.
 
virtual void * getUserData ()
 Returns a custom user data pointer.
 
virtual const void * getUserData () const
 @lua NA
 
virtual void setUserData (void *userData)
 Sets a custom user data pointer.
 
virtual ObjectgetUserObject ()
 Returns a user assigned Object.
 
virtual const ObjectgetUserObject () const
 @lua NA
 
virtual void setUserObject (Object *userObject)
 Returns a user assigned Object.
 
virtual void onEnterTransitionDidFinish ()
 Event callback that is invoked when the Node enters in the 'stage'.
 
virtual void onExitTransitionDidStart ()
 Event callback that is called every time the Node leaves the 'stage'.
 
virtual void setActionManager (ActionManager *actionManager)
 Sets the ActionManager object that is used by all actions.
 
virtual ActionManagergetActionManager ()
 Gets the ActionManager object that is used by all actions.
 
virtual Action * runAction (Action *action)
 Executes an action, and returns the action that is executed.
 
void stopAllActions ()
 Stops and removes all actions from the running action list .
 
void stopAction (Action *action)
 Stops and removes an action from the running action list.
 
void stopActionByTag (int tag)
 Removes an action from the running action list by its tag.
 
void stopAllActionsByTag (int tag)
 Removes all actions from the running action list by its tag.
 
void stopActionsByFlags (unsigned int flags)
 Removes all actions from the running action list by its flags.
 
Action * getActionByTag (int tag)
 Gets an action from the running action list by its tag.
 
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).
 
ssize_t getNumberOfRunningActionsByTag (int tag) const
 Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays) with a specific tag.
 
virtual void setScheduler (Scheduler *scheduler)
 Sets a Scheduler object that is used to schedule all "updates" and timers.
 
virtual SchedulergetScheduler ()
 Gets a Scheduler object.
 
bool isScheduled (SEL_SCHEDULE selector) const
 Checks whether a selector is scheduled.
 
bool isScheduled (std::string_view key) const
 Checks whether a lambda function is scheduled.
 
void scheduleUpdate ()
 Schedules the "update" method.
 
void scheduleUpdateWithPriority (int priority)
 Schedules the "update" method with a custom priority.
 
void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
 Schedules a custom selector.
 
void schedule (SEL_SCHEDULE selector, float interval)
 Schedules a custom selector with an interval time in seconds.
 
void scheduleOnce (SEL_SCHEDULE selector, float delay)
 Schedules a selector that runs only once, with a delay of 0 or larger.
 
void scheduleOnce (const std::function< void(float)> &callback, float delay, std::string_view key)
 Schedules a lambda function that runs only once, with a delay of 0 or larger.
 
void schedule (SEL_SCHEDULE selector)
 Schedules a custom selector, the scheduled selector will be ticked every frame.
 
void schedule (const std::function< void(float)> &callback, std::string_view key)
 Schedules a lambda function.
 
void schedule (const std::function< void(float)> &callback, float interval, std::string_view key)
 Schedules a lambda function.
 
void schedule (const std::function< void(float)> &callback, float interval, unsigned int repeat, float delay, std::string_view key)
 Schedules a lambda function.
 
void unschedule (SEL_SCHEDULE selector)
 Unschedules a custom selector.
 
void unschedule (std::string_view key)
 Unschedules a lambda function.
 
void unscheduleAllCallbacks ()
 Unschedule all scheduled selectors and lambda functions: custom selectors, and the 'update' selector and lambda functions.
 
virtual void resume ()
 Resumes all scheduled selectors, actions and event listeners.
 
virtual void pause ()
 Pauses all scheduled selectors, actions and event listeners.
 
virtual void updateTransform ()
 Calls children's updateTransform() method recursively.
 
virtual const Mat4getNodeToParentTransform () const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
 
virtual Mat4 getNodeToParentTransform (Node *ancestor) const
 Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
 
virtual AffineTransform getNodeToParentAffineTransform (Node *ancestor) const
 Returns the affine transform matrix that transform the node's (local) space coordinates into the parent's space coordinates.
 
virtual void setNodeToParentTransform (const Mat4 &transform)
 Sets the transformation matrix manually.
 
virtual const Mat4getParentToNodeTransform () const
 Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
 
virtual Mat4 getNodeToWorldTransform () const
 Returns the world affine transform matrix.
 
virtual Mat4 getWorldToNodeTransform () const
 Returns the inverse world affine transform matrix.
 
Vec2 convertToNodeSpace (const Vec2 &worldPoint) const
 Converts a Vec2 to node (local) space coordinates.
 
Vec2 convertToWorldSpace (const Vec2 &nodePoint) const
 Converts a Vec2 to world space coordinates.
 
Vec2 convertToNodeSpaceAR (const Vec2 &worldPoint) const
 Converts a Vec2 to node (local) space coordinates.
 
Vec2 convertToWorldSpaceAR (const Vec2 &nodePoint) const
 Converts a local Vec2 to world space coordinates.The result is in Points.
 
Vec2 convertTouchToNodeSpace (Touch *touch) const
 convenience methods which take a Touch instead of Vec2.
 
Vec2 convertTouchToNodeSpaceAR (Touch *touch) const
 converts a Touch (world coordinates) into a local coordinate.
 
Vec2 getWorldPosition () const
 Gets position of node in world space.
 
void setWorldPosition (const Vec2 &position)
 Sets position of node in world space.
 
void setAdditionalTransform (const Mat4 *additionalTransform)
 Sets an additional transform matrix to the node.
 
Component * getComponent (std::string_view name)
 Gets a component by its name.
 
virtual bool addComponent (Component *component)
 Adds a component.
 
virtual bool removeComponent (std::string_view name)
 Removes a component by its name.
 
virtual bool removeComponent (Component *component)
 Removes a component by its pointer.
 
virtual void removeAllComponents ()
 Removes all components.
 
virtual std::string getDescription () const
 Gets the description string.
 
virtual void addChild (Node *child)
 Adds a child to the container with z-order as 0.
 
virtual void addChild (Node *child, int localZOrder)
 Adds a child to the container with a local z-order.
 
virtual void addChild (Node *child, int localZOrder, int tag)
 Adds a child to the container with z order and tag.
 
virtual void addChild (Node *child, int localZOrder, std::string_view name)
 Adds a child to the container with z order and tag.
 
virtual NodegetChildByTag (int tag) const
 Gets a child from the container with its tag.
 
template<typename T>
getChildByTag (int tag) const
 Gets a child from the container with its tag that can be cast to Type T.
 
virtual NodegetChildByName (std::string_view name) const
 Gets a child from the container with its name.
 
template<typename T>
getChildByName (std::string_view name) const
 Gets a child from the container with its name that can be cast to Type T.
 
virtual void enumerateChildren (std::string_view name, std::function< bool(Node *node)> callback) const
 Search the children of the receiving node to perform processing for nodes which share a name.
 
virtual Vector< Node * > & getChildren ()
 Returns the array of the node's children.
 
virtual ssize_t getChildrenCount () const
 Returns the amount of children.
 
virtual void setParent (Node *parent)
 Sets the parent node.
 
virtual NodegetParent ()
 Returns a pointer to the parent node.
 
virtual void removeFromParent ()
 Removes this node itself from its parent node with a cleanup.
 
virtual void removeFromParentAndCleanup (bool cleanup)
 Removes this node itself from its parent node.
 
virtual void removeChild (Node *child, bool cleanup=true)
 Removes a child from the container.
 
virtual void removeChildByTag (int tag, bool cleanup=true)
 Removes a child from the container by tag value.
 
virtual void removeChildByName (std::string_view name, bool cleanup=true)
 Removes a child from the container by tag value.
 
virtual void removeAllChildren ()
 Removes all children from the container with a cleanup.
 
virtual void removeAllChildrenWithCleanup (bool cleanup)
 Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter.
 
virtual void reorderChild (Node *child, int localZOrder)
 Reorders a child according to a new z value.
 
virtual void sortAllChildren ()
 Sorts the children array once before drawing, instead of every time when a child is added or reordered.
 
- Public Member Functions inherited from Object
void retain ()
 Retains the ownership.
 
void release ()
 Releases the ownership immediately.
 
Objectautorelease ()
 Releases the ownership sometime soon automatically.
 
unsigned int getReferenceCount () const
 Returns the Object's current reference count.
 
virtual ~Object ()
 Destructor.
 

Static Public Member Functions

static ParticleSystemcreate (std::string_view plistFile)
 Creates an initializes a ParticleSystem from a plist file.
 
static ParticleSystemcreateWithTotalParticles (int numberOfParticles)
 Create a system with a fixed number of particles.
 
static Vector< ParticleSystem * > & getAllParticleSystems ()
 Gets all ParticleSystem references.
 
static EmissionShape createMaskShape (std::string_view maskId, Vec2 pos=Vec2::ZERO, Vec2 overrideSize=Vec2::ZERO, Vec2 scale=Vec2::ONE, float angle=0.0F)
 Adds an emission shape of type mask to the system.
 
static EmissionShape createPointShape (Vec2 pos)
 Adds an emission shape of type point to the system.
 
static EmissionShape createRectShape (Vec2 pos, Size size)
 Adds an emission shape of type Rectangle to the system.
 
static EmissionShape createRectTorusShape (Vec2 pos, Size innerSize, Size outerSize)
 Adds an emission shape of type Rectangular Torus to the system.
 
static EmissionShape createCircleShape (Vec2 pos, float radius, float edgeBias=1.0F)
 Adds an emission shape of type Circle to the system.
 
static EmissionShape createConeShape (Vec2 pos, float radius, float offset, float angle, float edgeBias=1.0F)
 Adds an emission shape of type Cone to the system.
 
static EmissionShape createTorusShape (Vec2 pos, float innerRadius, float outerRadius, float edgeBias=1.0F)
 Adds an emission shape of type Torus to the system.
 
static EmissionShape createConeTorusShape (Vec2 pos, float innerRadius, float outerRadius, float offset, float angle, float edgeBias=1.0F)
 Adds an emission shape of type Torus to the system.
 
static Nodecreate ()
 Allocates and initializes a node.
 
static int getAttachedNodeCount ()
 Gets count of nodes those are attached to scene graph.
 
template<typename _T>
static void sortNodes (ax::Vector< _T * > &nodes)
 Sorts helper function.
 

Additional Inherited Members

- Public Attributes inherited from Object
unsigned int _ID
 object id, ScriptSupport need public _ID
 
int _luaID
 Lua reference id.
 
- Static Public Attributes inherited from Node
static const int INVALID_TAG = -1
 Default tag used for all the nodes.
 

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

◆ PositionType

enum class PositionType
strong

PositionType Types of particle positioning.

@js cc.ParticleSystem.TYPE_FREE

Enumerator
RELATIVE 

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

GROUPED 

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.

◆ TexAnimDir

enum class TexAnimDir
strong

TexAnimDir Texture animation direction for the particles.

Enumerator
HORIZONTAL 

texture coordinates are read top to bottom within the texture

◆ anonymous enum

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.

SIMULATION_USE_PARTICLE_LIFETIME 

The simulation's seconds are set to the particles' lifetime specified inclusive of variant.

SIMULATION_USE_GAME_ANIMATION_INTERVAL 

The simulation's framerate is set to the animation interval specified in director.

Member Function Documentation

◆ create()

static ParticleSystem * create ( std::string_view 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
Parameters
plistFileParticle plist file name.
Returns
An autoreleased ParticleSystem object.

◆ createWithTotalParticles()

static ParticleSystem * createWithTotalParticles ( int numberOfParticles)
static

Create a system with a fixed number of particles.

Parameters
numberOfParticlesA given number of particles.
Returns
An autoreleased ParticleSystemQuad object. @js NA

◆ isFull()

bool isFull ( )

Whether or not the system is full.

Returns
True if the system is full.

◆ updateWithNoTime()

virtual void updateWithNoTime ( )
virtual

Call the update method with no time.

◆ isAutoRemoveOnFinish()

virtual bool isAutoRemoveOnFinish ( ) const
virtual

Whether or not the particle system removed self on finish.

Returns
True if the particle system removed self on finish.

◆ setAutoRemoveOnFinish()

virtual void setAutoRemoveOnFinish ( bool var)
virtual

Set the particle system auto removed it self on finish.

Parameters
varTrue if the particle system removed self on finish.

◆ getGravity()

virtual const Vec2 & getGravity ( )
virtual

Gets the gravity.

Returns
The gravity.

◆ setGravity()

virtual void setGravity ( const Vec2 & g)
virtual

Sets the gravity.

Parameters
gThe gravity.

◆ getSpeed()

virtual float getSpeed ( ) const
virtual

Gets the speed.

Returns
The speed.

◆ setSpeed()

virtual void setSpeed ( float speed)
virtual

Sets the speed.

Parameters
speedThe speed.

◆ getSpeedVar()

virtual float getSpeedVar ( ) const
virtual

Gets the speed variance.

Returns
The speed variance.

◆ setSpeedVar()

virtual void setSpeedVar ( float speed)
virtual

Sets the speed variance.

Parameters
speedThe speed variance.

◆ getTangentialAccel()

virtual float getTangentialAccel ( ) const
virtual

Gets the tangential acceleration.

Returns
The tangential acceleration.

◆ setTangentialAccel()

virtual void setTangentialAccel ( float t)
virtual

Sets the tangential acceleration.

Parameters
tThe tangential acceleration.

◆ getTangentialAccelVar()

virtual float getTangentialAccelVar ( ) const
virtual

Gets the tangential acceleration variance.

Returns
The tangential acceleration variance.

◆ setTangentialAccelVar()

virtual void setTangentialAccelVar ( float t)
virtual

Sets the tangential acceleration variance.

Parameters
tThe tangential acceleration variance.

◆ getRadialAccel()

virtual float getRadialAccel ( ) const
virtual

Gets the radial acceleration.

Returns
The radial acceleration.

◆ setRadialAccel()

virtual void setRadialAccel ( float t)
virtual

Sets the radial acceleration.

Parameters
tThe radial acceleration.

◆ getRadialAccelVar()

virtual float getRadialAccelVar ( ) const
virtual

Gets the radial acceleration variance.

Returns
The radial acceleration variance.

◆ setRadialAccelVar()

virtual void setRadialAccelVar ( float t)
virtual

Sets the radial acceleration variance.

Parameters
tThe radial acceleration variance.

◆ getRotationIsDir()

virtual bool getRotationIsDir ( ) const
virtual

Whether or not the rotation of each particle to its direction.

Returns
True if the rotation is the direction.

◆ setRotationIsDir()

virtual void setRotationIsDir ( bool t)
virtual

Sets the rotation of each particle to its direction.

Parameters
tTrue if the rotation is the direction.

◆ getStartRadius()

virtual float getStartRadius ( ) const
virtual

Gets the start radius.

Returns
The start radius.

◆ setStartRadius()

virtual void setStartRadius ( float startRadius)
virtual

Sets the start radius.

Parameters
startRadiusThe start radius.

◆ getStartRadiusVar()

virtual float getStartRadiusVar ( ) const
virtual

Gets the start radius variance.

Returns
The start radius variance.

◆ setStartRadiusVar()

virtual void setStartRadiusVar ( float startRadiusVar)
virtual

Sets the start radius variance.

Parameters
startRadiusVarThe start radius variance.

◆ getEndRadius()

virtual float getEndRadius ( ) const
virtual

Gets the end radius.

Returns
The end radius.

◆ setEndRadius()

virtual void setEndRadius ( float endRadius)
virtual

Sets the end radius.

Parameters
endRadiusThe end radius.

◆ getEndRadiusVar()

virtual float getEndRadiusVar ( ) const
virtual

Gets the end radius variance.

Returns
The end radius variance.

◆ setEndRadiusVar()

virtual void setEndRadiusVar ( float endRadiusVar)
virtual

Sets the end radius variance.

Parameters
endRadiusVarThe end radius variance.

◆ getRotatePerSecond()

virtual float getRotatePerSecond ( ) const
virtual

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

Returns
The number of degrees to rotate a particle around the source pos per second.

◆ setRotatePerSecond()

virtual void setRotatePerSecond ( float degrees)
virtual

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

Parameters
degreesThe number of degrees to rotate a particle around the source pos per second.

◆ getRotatePerSecondVar()

virtual float getRotatePerSecondVar ( ) const
virtual

Gets the rotate per second variance.

Returns
The rotate per second variance.

◆ setRotatePerSecondVar()

virtual void setRotatePerSecondVar ( float degrees)
virtual

Sets the rotate per second variance.

Parameters
degreesThe rotate per second variance.

◆ setScale()

virtual void setScale ( float scale)
overridevirtual

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.
Warning
The physics body doesn't support this.

Reimplemented from Node.

◆ setRotation()

virtual void setRotation ( float rotation)
overridevirtual

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.

◆ setScaleX()

virtual void setScaleX ( float scaleX)
overridevirtual

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.
Warning
The physics body doesn't support this.

Reimplemented from Node.

◆ setScaleY()

virtual void setScaleY ( float scaleY)
overridevirtual

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.
Warning
The physics body doesn't support this.

Reimplemented from Node.

◆ isActive()

virtual bool isActive ( ) const
virtual

Whether or not the particle system is active.

Returns
True if the particle system is active.

◆ isBlendAdditive()

virtual bool isBlendAdditive ( ) const
virtual

Whether or not the particle system is blend additive.

Returns
True if the particle system is blend additive.

◆ setBlendAdditive()

virtual void setBlendAdditive ( bool value)
virtual

Sets the particle system blend additive.

Parameters
valueTrue if the particle system is blend additive.

◆ getBatchNode()

virtual ParticleBatchNode * getBatchNode ( ) const
virtual

Gets the batch node.

Returns
The batch node.

◆ setBatchNode()

virtual void setBatchNode ( ParticleBatchNode * batchNode)
virtual

Sets the batch node.

Parameters
batchNodeThe batch node.

Reimplemented in ParticleSystemQuad.

◆ getAtlasIndex()

int getAtlasIndex ( ) const
inline

Gets the index of system in batch node array.

Returns
The index of system in batch node array.

◆ setAtlasIndex()

void setAtlasIndex ( int index)
inline

Sets the index of system in batch node array.

Parameters
indexThe index of system in batch node array.

◆ getParticleCount()

unsigned int getParticleCount ( ) const
inline

Gets the Quantity of particles that are being simulated at the moment.

Returns
The Quantity of particles that are being simulated at the moment.

◆ getDuration()

float getDuration ( ) const
inline

Gets how many seconds the emitter will run.

-1 means 'forever'.

Returns
The seconds that the emitter will run. -1 means 'forever'.

◆ setDuration()

void setDuration ( float duration)
inline

Sets how many seconds the emitter will run.

-1 means 'forever'.

Parameters
durationThe seconds that the emitter will run. -1 means 'forever'.

◆ getSourcePosition()

const Vec2 & getSourcePosition ( ) const
inline

Gets the source position of the emitter.

Returns
The source position of the emitter.

◆ setSourcePosition()

void setSourcePosition ( const Vec2 & pos)
inline

Sets the source position of the emitter.

Parameters
posThe source position of the emitter.

◆ getPosVar()

const Vec2 & getPosVar ( ) const
inline

Gets the position variance of the emitter.

Returns
The position variance of the emitter.

◆ setPosVar()

void setPosVar ( const Vec2 & pos)
inline

Sets the position variance of the emitter.

Parameters
posThe position variance of the emitter.

◆ getLife()

float getLife ( ) const
inline

Gets the life of each particle.

Returns
The life of each particle.

◆ setLife()

void setLife ( float life)
inline

Sets the life of each particle.

Parameters
lifeThe life of each particle.

◆ getLifeVar()

float getLifeVar ( ) const
inline

Gets the life variance of each particle.

Returns
The life variance of each particle.

◆ setLifeVar()

void setLifeVar ( float lifeVar)
inline

Sets the life variance of each particle.

Parameters
lifeVarThe life variance of each particle.

◆ getAngle()

float getAngle ( ) const
inline

Gets the angle of each particle.

Returns
The angle of each particle.

◆ setAngle()

void setAngle ( float angle)
inline

Sets the angle of each particle.

Parameters
angleThe angle of each particle.

◆ getAngleVar()

float getAngleVar ( ) const
inline

Gets the angle variance of each particle.

Returns
The angle variance of each particle.

◆ setAngleVar()

void setAngleVar ( float angleVar)
inline

Sets the angle variance of each particle.

Parameters
angleVarThe angle variance of each particle.

◆ getEmitterMode()

Mode getEmitterMode ( ) const
inline

Switch between different kind of emitter modes:

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

    Returns
    The mode of the emitter.

◆ setEmitterMode()

void setEmitterMode ( Mode mode)
inline

Sets the mode of the emitter.

Parameters
modeThe mode of the emitter.

◆ getStartSize()

float getStartSize ( ) const
inline

Gets the start size in pixels of each particle.

Returns
The start size in pixels of each particle.

◆ setStartSize()

void setStartSize ( float startSize)
inline

Sets the start size in pixels of each particle.

Parameters
startSizeThe start size in pixels of each particle.

◆ getStartSizeVar()

float getStartSizeVar ( ) const
inline

Gets the start size variance in pixels of each particle.

Returns
The start size variance in pixels of each particle.

◆ setStartSizeVar()

void setStartSizeVar ( float sizeVar)
inline

Sets the start size variance in pixels of each particle.

Parameters
sizeVarThe start size variance in pixels of each particle.

◆ getEndSize()

float getEndSize ( ) const
inline

Gets the end size in pixels of each particle.

Returns
The end size in pixels of each particle.

◆ setEndSize()

void setEndSize ( float endSize)
inline

Sets the end size in pixels of each particle.

Parameters
endSizeThe end size in pixels of each particle.

◆ getEndSizeVar()

float getEndSizeVar ( ) const
inline

Gets the end size variance in pixels of each particle.

Returns
The end size variance in pixels of each particle.

◆ setEndSizeVar()

void setEndSizeVar ( float sizeVar)
inline

Sets the end size variance in pixels of each particle.

Parameters
sizeVarThe end size variance in pixels of each particle.

◆ getStartColor()

const Color4F & getStartColor ( ) const
inline

Gets the start color of each particle.

Returns
The start color of each particle.

◆ setStartColor()

void setStartColor ( const Color4F & color)
inline

Sets the start color of each particle.

Parameters
colorThe start color of each particle.

◆ getStartColorVar()

const Color4F & getStartColorVar ( ) const
inline

Gets the start color variance of each particle.

Returns
The start color variance of each particle.

◆ setStartColorVar()

void setStartColorVar ( const Color4F & color)
inline

Sets the start color variance of each particle.

Parameters
colorThe start color variance of each particle.

◆ getEndColor()

const Color4F & getEndColor ( ) const
inline

Gets the end color and end color variation of each particle.

Returns
The end color and end color variation of each particle.

◆ setEndColor()

void setEndColor ( const Color4F & color)
inline

Sets the end color and end color variation of each particle.

Parameters
colorThe end color and end color variation of each particle.

◆ getEndColorVar()

const Color4F & getEndColorVar ( ) const
inline

Gets the end color variance of each particle.

Returns
The end color variance of each particle.

◆ setEndColorVar()

void setEndColorVar ( const Color4F & color)
inline

Sets the end color variance of each particle.

Parameters
colorThe end color variance of each particle.

◆ useHSV()

void useHSV ( bool hsv)

Sets wether to use HSV color system.

WARNING: becareful when using HSV with too many particles because it's expensive.

Parameters
hsvUse HSV color system.

◆ getHue()

float getHue ( ) const
inline

Gets the hue of each particle.

Returns
The hue of each particle.

◆ setHue()

void setHue ( float hue)
inline

Sets the hue of each particle.

Parameters
hsvThe hue color of each particle.

◆ getHueVar()

float getHueVar ( ) const
inline

Gets the hue variance of each particle.

Returns
The hue variance of each particle.

◆ setHueVar()

void setHueVar ( float hue)
inline

Sets the hue variance of each particle.

Parameters
hsvThe hue variance color of each particle.

◆ getHSV()

const HSV & getHSV ( ) const
inline

Gets the HSV color of each particle.

Returns
The HSV color of each particle.

◆ setHSV()

void setHSV ( const HSV & hsv)
inline

Sets the HSV color of each particle.

Parameters
hsvThe HSV color of each particle.

◆ getHSVVar()

const HSV & getHSVVar ( ) const
inline

Gets the HSV color variance of each particle.

Returns
The HSV color variance of each particle.

◆ setHSVVar()

void setHSVVar ( const HSV & hsv)
inline

Sets the HSV color variance of each particle.

Parameters
hsvThe HSV color variance of each particle.

◆ getStartSpin()

float getStartSpin ( ) const
inline

Gets the start spin of each particle.

Returns
The start spin of each particle.

◆ setStartSpin()

void setStartSpin ( float spin)
inline

Sets the start spin of each particle.

Parameters
spinThe start spin of each particle.

◆ getStartSpinVar()

float getStartSpinVar ( ) const
inline

Gets the start spin variance of each particle.

Returns
The start spin variance of each particle.

◆ setStartSpinVar()

void setStartSpinVar ( float pinVar)
inline

Sets the start spin variance of each particle.

Parameters
pinVarThe start spin variance of each particle.

◆ getEndSpin()

float getEndSpin ( ) const
inline

Gets the end spin of each particle.

Returns
The end spin of each particle.

◆ setEndSpin()

void setEndSpin ( float endSpin)
inline

Sets the end spin of each particle.

Parameters
endSpinThe end spin of each particle.

◆ getEndSpinVar()

float getEndSpinVar ( ) const
inline

Gets the end spin variance of each particle.

Returns
The end spin variance of each particle.

◆ setEndSpinVar()

void setEndSpinVar ( float endSpinVar)
inline

Sets the end spin variance of each particle.

Parameters
endSpinVarThe end spin variance of each particle.

◆ getSpawnAngle()

float getSpawnAngle ( )
inline

Gets the spawn angle of each particle.

Returns
The angle in degrees of each particle.

◆ setSpawnAngle()

void setSpawnAngle ( float angle)
inline

Sets the spawn angle of each particle.

Parameters
angleThe angle in degrees of each particle.

◆ getSpawnAngleVar()

float getSpawnAngleVar ( )
inline

Sets the spawn angle variance of each particle.

Returns
The angle variance in degrees of each particle.

◆ setSpawnAngleVar()

void setSpawnAngleVar ( float angle)
inline

Sets the spawn angle variance of each particle.

Parameters
angleThe angle variance in degrees of each particle.

◆ getSpawnFadeIn()

float getSpawnFadeIn ( )
inline

Gets the spawn opacity fade in time of each particle.

Particles have the ability to spawn while having 0 opacity and gradually start going to 255 opacity with a specified time.

Returns
The spawn opacity fade in time in seconds.

◆ setSpawnFadeIn()

void setSpawnFadeIn ( float time)

Sets the spawn opacity fade in time of each particle when it's created.

Particles have the ability to spawn while having 0 opacity and gradually start going to 255 opacity with a specified time.

Parameters
timeThe spawn opacity fade in time in seconds.

◆ getSpawnFadeInVar()

float getSpawnFadeInVar ( )
inline

Gets the spawn opacity fade in time variance of each particle.

Particles have the ability to spawn while having 0 opacity and gradually start going to 255 opacity with a specified time.

Returns
The spawn opacity fade in time variance in seconds.

◆ setSpawnFadeInVar()

void setSpawnFadeInVar ( float time)

Sets the spawn opacity fade in time variance of each particle when it's created.

Particles have the ability to spawn while having 0 opacity and gradually start going to 255 opacity with a specified time.

Parameters
timeThe spawn opacity fade in time variance in seconds.

◆ getSpawnScaleIn()

float getSpawnScaleIn ( )
inline

Gets the spawn scale fade in time of each particle.

Particles have the ability to spawn while having 0.0 size and gradually start going to 1.0 size with a specified time.

Returns
The spawn opacity fade in time in seconds.

◆ setSpawnScaleIn()

void setSpawnScaleIn ( float time)

Sets the spawn scale fade in time of each particle when it's created.

Particles have the ability to spawn while having 0.0 size and gradually start going to 1.0 size with a specified time.

Parameters
timeThe spawn opacity fade in time in seconds.

◆ getSpawnScaleInVar()

float getSpawnScaleInVar ( )
inline

Gets the spawn scale fade in time variance of each particle.

Particles have the ability to spawn while having 0.0 size and gradually start going to 1.0 size with a specified time.

Returns
The spawn opacity fade in time variance in seconds.

◆ setSpawnScaleInVar()

void setSpawnScaleInVar ( float time)

Sets the spawn scale fade in time variance of each particle when it's created.

Particles have the ability to spawn while having 0.0 size and gradually start going to 1.0 size with a specified time.

Parameters
timeThe spawn opacity fade in time variance in seconds.

◆ getEmissionRate()

float getEmissionRate ( ) const
inline

Gets the emission rate of the particles.

Returns
The emission rate of the particles.

◆ setEmissionRate()

void setEmissionRate ( float rate)
inline

Sets the emission rate of the particles.

Parameters
rateThe emission rate of the particles.

◆ getTotalParticles()

virtual int getTotalParticles ( ) const
virtual

Gets the maximum particles of the system.

Returns
The maximum particles of the system.

◆ setTotalParticles()

virtual void setTotalParticles ( int totalParticles)
virtual

Sets the maximum particles of the system.

Parameters
totalParticlesThe maximum particles of the system.

Reimplemented in ParticleSystemQuad.

◆ isOpacityModifyRGB()

bool isOpacityModifyRGB ( ) const
inlineoverridevirtual

If node opacity will modify the RGB color value, then you should override this method and return true.

Returns
A boolean value, true indicates that opacity will modify color; false otherwise.

Reimplemented from Node.

◆ getTotalAnimationIndices()

int getTotalAnimationIndices ( )
inline

Gets the total number of indices.

Returns
The size of the list holding animation indices.

◆ setMultiAnimationRandomSpecific()

void setMultiAnimationRandomSpecific ( const std::vector< unsigned short > & animations)
inline

Choose what animation descriptors are to be selected at random for particles.

This function should be called after you've inserted/overwritten any animation descriptors.

Parameters
animationsArray of specific indices of animations to play at random

◆ setMultiAnimationRandom()

void setMultiAnimationRandom ( )

Choose ALL animation descriptors to be selected at random for particles.

This function should be called after you've inserted/overwritten any animation descriptors.

◆ setAnimationIndicesAtlas() [1/2]

void setAnimationIndicesAtlas ( )

Add all particle animation indices based on cells size and direction spicified using a texture atlas.

will erase the array and add new indices from the atlas. This function will automatically figure out your atlas cell size and direction for you! thank her later :)

◆ setAnimationIndicesAtlas() [2/2]

void setAnimationIndicesAtlas ( unsigned int unifiedCellSize,
TexAnimDir direction = TexAnimDir::HORIZONTAL )

Add all particle animation indices based on cell size and direction spicified if the method of rendering preferred is texture atlas.

will erase the array and add new indices from the atlas.

Parameters
unifiedCellSizeThe size of cell unified.
directionWhat direction is the atlas

◆ addAnimationIndex() [1/5]

bool addAnimationIndex ( std::string_view frameName)

Add a particle animation index based on tex coords spicified using a sprite frame.

The index is automatically incremented on each addition.

Parameters
frameNameSpriteFrame name to search for
Returns
Returns true of the index was successfully found and added. Otherwise, false

◆ addAnimationIndex() [2/5]

bool addAnimationIndex ( unsigned short index,
std::string_view frameName )

Add a particle animation index based on tex coords spicified using a sprite frame.

Parameters
indexIndex id to add the frame to or override it with the new frame
frameNameSpriteFrame name to search for
Returns
Returns true of the index was successfully found and added. Otherwise, false

◆ addAnimationIndex() [3/5]

bool addAnimationIndex ( ax::SpriteFrame * frame)

Add a particle animation index based on tex coords spicified using a sprite frame.

The index is automatically incremented on each addition.

Parameters
frameSpriteFrame containting data about tex coords
Returns
Returns true of the index was successfully found and added. Otherwise, false

◆ addAnimationIndex() [4/5]

bool addAnimationIndex ( unsigned short index,
ax::SpriteFrame * frame )

Add a particle animation index based on tex coords spicified using a sprite frame.

you can specify which index you want to override in this function

Parameters
indexIndex id to add the frame to or override it with the new frame
frameSpriteFrame containting data about tex coords
Returns
Returns true of the index was successfully found and added. Otherwise, false

◆ addAnimationIndex() [5/5]

bool addAnimationIndex ( unsigned short index,
ax::Rect rect,
bool rotated = false )

Add a particle animation index based on tex coords spicified.

you can specify which index you want to override in this function

Parameters
indexIndex id to add the frame to or override it with the new rect
rectRect containting data about tex coords in pixels
rotatedNot implemented.
Returns
Returns true of the index was successfully found and added. Otherwise, false

◆ setRectForUndefinedIndices()

void setRectForUndefinedIndices ( ax::Rect rect)
inline

You can specify what rect is used if an index in an animation descriptor wasn't found.

Parameters
rectRect containting data about tex coords in pixels

◆ setAnimationDescriptor() [1/2]

void setAnimationDescriptor ( unsigned short indexOfDescriptor,
float time,
float timeVariance,
const std::vector< unsigned short > & indices,
bool reverse = false )

Add a particle animation descriptor with an index.

Parameters
indexOfDescriptorIndex of the animation to be added, adding to the same index will just override the pervious animation descriptor
timelength of the animation in seconds
timeVarianceTime randomly selected for each different particle added on the animation length
indicesAn array of the indicies
reverseShould the animation indicies be played backwards? (default: false)

◆ setAnimationDescriptor() [2/2]

void setAnimationDescriptor ( const std::vector< unsigned short > & indices,
bool reverse = false )
inline

Add a particle animation descriptor with the index 0.

Parameters
indicesAn array of the indicies
reverseShould the animation indicies be played backwards? (default: false)

◆ setAnimationSpeedTimescaleIndependent()

void setAnimationSpeedTimescaleIndependent ( bool independent)
inline

Sets wether the animation descriptors should follow the time scale of the system or not.

Parameters
independentShould the animation descriptor speeds be played independently? (default: false)

◆ addEmissionShape()

void addEmissionShape ( EmissionShape shape)

Adds an emission shape to the system.

The index is automatically incremented on each addition.

Parameters
shapeShape descriptor object.

◆ setEmissionShape()

void setEmissionShape ( unsigned short index,
EmissionShape shape )

Updates an existing emission shape or adds it.

Parameters
indexindex of the shape descriptor.
shapeShape descriptor object.

◆ createMaskShape()

static EmissionShape createMaskShape ( std::string_view maskId,
Vec2 pos = Vec2::ZERO,
Vec2 overrideSize = Vec2::ZERO,
Vec2 scale = Vec2::ONE,
float angle = 0.0F )
static

Adds an emission shape of type mask to the system.

The mask should be added using the ParticleEmissionMaskCache class.

Parameters
maskIdThe id of the mask, FOURCC starts with '#', such as "#abcd"
posPosition of the emission shape in local space.
overrideSizeSize of the emission mask in pixels, leave ZERO to use texture size.
scaleScale of the emission mask, the size will be multiplied by the specified scale.
angleAngle of the sampled points to be rotated in degrees.

◆ createPointShape()

static EmissionShape createPointShape ( Vec2 pos)
static

Adds an emission shape of type point to the system.

Parameters
posPosition of the emission shape in local space.

◆ createRectShape()

static EmissionShape createRectShape ( Vec2 pos,
Size size )
static

Adds an emission shape of type Rectangle to the system.

Parameters
posPosition of the emission shape in local space.
sizeSize of the rectangle.

◆ createRectTorusShape()

static EmissionShape createRectTorusShape ( Vec2 pos,
Size innerSize,
Size outerSize )
static

Adds an emission shape of type Rectangular Torus to the system.

Parameters
posPosition of the emission shape in local space.
innerSizeInner size offset of the rectangle.
outerSizeOuter size of the rectangle.

◆ createCircleShape()

static EmissionShape createCircleShape ( Vec2 pos,
float radius,
float edgeBias = 1.0F )
static

Adds an emission shape of type Circle to the system.

The default angle offset of the circle is 0 and the default angle of the circle is 360

Parameters
posPosition of the emission shape in local space.
radiusRadius of the circle.
edgeBiascircle edge center bias value, If the value is greater than 1.0 then particles will bias towards the edge of the circle more often the greater the value is; If the value is lower than 1.0 then particles will bias towards the center of the circle more often the closer the value is to 0.0; If the value is exactly 1.0 then there will be no bias behaviour.

◆ createConeShape()

static EmissionShape createConeShape ( Vec2 pos,
float radius,
float offset,
float angle,
float edgeBias = 1.0F )
static

Adds an emission shape of type Cone to the system.

The default angle offset of the circle is 0 and the default angle of the circle is 360

Parameters
posPosition of the emission shape in local space.
radiusRadius of the circle.
offsetCone offset angle in degrees.
angleCone angle in degrees.
edgeBiascircle edge center bias value, If the value is greater than 1.0 then particles will bias towards the edge of the circle more often the greater the value is; If the value is lower than 1.0 then particles will bias towards the center of the circle more often the closer the value is to 0.0; If the value is exactly 1.0 then there will be no bias behaviour.

◆ createTorusShape()

static EmissionShape createTorusShape ( Vec2 pos,
float innerRadius,
float outerRadius,
float edgeBias = 1.0F )
static

Adds an emission shape of type Torus to the system.

The default angle offset of the torus is 0 and the default angle of the torus is 360

Parameters
posPosition of the emission shape in local space.
innerRadiusInner radius offset of the torus.
outerRadiusOuter radius of the torus.
edgeBiastorus edge center bias value, If the value is greater than 1.0 then particles will bias towards the edge of the torus more often the greater the value is; If the value is lower than 1.0 then particles will bias towards the center of the torus more often the closer the value is to 0.0; If the value is exactly 1.0 then there will be no bias behaviour.

◆ createConeTorusShape()

static EmissionShape createConeTorusShape ( Vec2 pos,
float innerRadius,
float outerRadius,
float offset,
float angle,
float edgeBias = 1.0F )
static

Adds an emission shape of type Torus to the system.

The default angle offset of the torus is 0 and the default angle of the torus is 360

Parameters
posPosition of the emission shape in local space.
innerRadiusInner radius offset of the torus.
outerRadiusOuter radius of the torus.
offsetCone offset angle in degrees.
angleCone angle in degrees.
edgeBiastorus edge center bias value, If the value is greater than 1.0 then particles will bias towards the edge of the torus more often the greater the value is; If the value is lower than 1.0 then particles will bias towards the center of the torus more often the closer the value is to 0.0; If the value is exactly 1.0 then there will be no bias behaviour.

◆ getPositionType()

PositionType getPositionType ( ) const
inline

Gets the particles movement type: Free or Grouped.

Since
v0.8
Returns
The particles movement type.

◆ setPositionType()

void setPositionType ( PositionType type)
inline

Sets the particles movement type: Free or Grouped.

Since
v0.8
Parameters
typeThe particles movement type.

◆ simulate()

void simulate ( float seconds = SIMULATION_USE_PARTICLE_LIFETIME,
float frameRate = SIMULATION_USE_GAME_ANIMATION_INTERVAL )

Advance the particle system and make it seem like it ran for this many seconds.

Parameters
secondsSeconds to advance. value of -1 means (SIMULATION_USE_PARTICLE_LIFETIME)
frameRateFrame rate to run the simulation with (preferred: 30.0) The higher this value is the more accurate the simulation will be at the cost of performance. value of -1 means (SIMULATION_USE_GAME_ANIMATION_INTERVAL)

◆ resimulate()

void resimulate ( float seconds = SIMULATION_USE_PARTICLE_LIFETIME,
float frameRate = SIMULATION_USE_GAME_ANIMATION_INTERVAL )

Resets the particle system and then advances the particle system and make it seem like it ran for this many seconds.

The frame rate used for simulation accuracy is the director's animation interval.

Parameters
secondsSeconds to advance. value of -1 means (SIMULATION_USE_PARTICLE_LIFETIME)
frameRateFrame rate to run the simulation with (preferred: 30.0) The higher this value is the more accurate the simulation will be at the cost of performance. value of -1 means (SIMULATION_USE_GAME_ANIMATION_INTERVAL)

◆ onEnter()

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(). @lua NA

Reimplemented from Node.

◆ onExit()

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(). @lua NA

Reimplemented from Node.

◆ update()

virtual void update ( float delta)
overridevirtual

Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live".

Parameters
deltaIn seconds.

Reimplemented from Node.

◆ setBlendFunc()

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)
virtual void setBlendFunc(const BlendFunc &blendFunc) override

◆ initWithFile()

bool initWithFile ( std::string_view plistFile)

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

◆ initWithDictionary() [1/2]

bool initWithDictionary ( const ValueMap & dictionary)

initializes a QuadParticleSystem from a Dictionary.

Since
v0.99.3

◆ initWithDictionary() [2/2]

bool initWithDictionary ( const ValueMap & dictionary,
std::string_view dirname )

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

Since
v2.1

◆ isPaused()

virtual bool isPaused ( ) const
virtual

Are the emissions paused.

Returns
True if the emissions are paused, else false

◆ getFixedFPS()

virtual float getFixedFPS ( )
virtual

Gets the fixed frame rate count of the particle system.

Returns
Fixed frame rate count of the particle system.

◆ setFixedFPS()

virtual void setFixedFPS ( float frameRate = 0.0F)
virtual

Sets the fixed frame rate count of the particle system.

i.e. if the framerate is set to 30.0 while the refresh rate is greater than 30.0 then the particle system will wait until it hits the 30.0 FPS mark. This is usefull for increasing performance or for creating old-school effects with it.

Parameters
Fixedframe rate count of the particle system. (default: 0.0)

◆ getTimeScale()

virtual float getTimeScale ( )
virtual

Gets the time scale of the particle system.

Returns
Time scale of the particle system.

◆ setTimeScale()

virtual void setTimeScale ( float scale = 1.0F)
virtual

Sets the time scale of the particle system.

Parameters
Timescale of the particle system. (default: 1.0)

Member Data Documentation

◆ gravity

Vec2 gravity

Gravity value.

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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.


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