cocos2d-iphone  2.0
Improved Cocos2D API Reference (iOS version) for www.kobold2d.com developers
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Defines
CCParticleSystem Class Reference

#import <CCParticleSystem.h>

Inheritance diagram for CCParticleSystem:
Collaboration diagram for CCParticleSystem:

List of all members.

Public Member Functions

(id) - initWithFile:
(id) - initWithDictionary:
(id) - initWithTotalParticles:
 Initializes a system with a fixed number of particles.
(void) - stopSystem
 stop emitting particles. Running particles will continue to run until they die
(void) - resetSystem
 Kill all living particles.
(BOOL) - isFull
 whether or not the system is full
(void) - updateQuadWithParticle:newPosition:
 should be overriden by subclasses
(void) - postStep
 should be overriden by subclasses
(void) - update:
 called in every loop.
(void) - updateWithNoTime

Static Public Member Functions

(id) + particleWithFile:

Protected Attributes

float elapsed
NSInteger emitterMode_
union {
   struct {
      CGPoint   gravity
      float   speed
      float   speedVar
      float   tangentialAccel
      float   tangentialAccelVar
      float   radialAccel
      float   radialAccelVar
   }   A
   struct {
      float   startRadius
      float   startRadiusVar
      float   endRadius
      float   endRadiusVar
      float   rotatePerSecond
      float   rotatePerSecondVar
   }   B
mode
tCCParticleparticles
NSUInteger allocatedParticles
float emitCounter
CCTexture2Dtexture_
ccBlendFunc blendFunc_
BOOL opacityModifyRGB_
tCCPositionType positionType_
BOOL autoRemoveOnFinish_
NSUInteger particleIdx
CC_UPDATE_PARTICLE_IMP updateParticleImp
SEL updateParticleSel
CCParticleBatchNodebatchNode_
NSUInteger atlasIndex_
BOOL transformSystemDirty_

Properties

BOOL active
NSUInteger particleCount
float duration
CGPoint sourcePosition
CGPoint posVar
float life
float lifeVar
float angle
float angleVar
float startSize
float startSizeVar
float endSize
float endSizeVar
ccColor4F startColor
ccColor4F startColorVar
ccColor4F endColor
ccColor4F endColorVar
float startSpin
float startSpinVar
float endSpin
float endSpinVar
float emissionRate
NSUInteger totalParticles
CCTexture2Dtexture
ccBlendFunc blendFunc
BOOL opacityModifyRGB
BOOL blendAdditive
tCCPositionType positionType
BOOL autoRemoveOnFinish
NSInteger emitterMode
CCParticleBatchNodebatchNode
NSUInteger atlasIndex

Detailed Description

Particle System base class Attributes of a Particle System:

  • emmision 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 guarateed in cocos2d, cocos2d uses a another approach, but the results are almost identical.

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

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

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

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

Member Function Documentation

- (id) initWithDictionary: (NSDictionary *)  dictionary

initializes a particle system from a NSDictionary.

Since:
v0.99.3
- (id) initWithFile: (NSString *)  plistFile

initializes a CCParticleSystem from a plist file. This plist files can be creted manually or with Particle Designer: http://particledesigner.71squared.com/

Since:
v0.99.3
- (id) initWithTotalParticles: (NSUInteger)  numberOfParticles

Initializes a system with a fixed number of particles.

- (BOOL) isFull

whether or not the system is full

+ (id) particleWithFile: (NSString *)  plistFile

creates an initializes a CCParticleSystem from a plist file. This plist files can be creted manually or with Particle Designer: http://particledesigner.71squared.com/

Since:
v0.99.3
- (void) postStep

should be overriden by subclasses

- (void) resetSystem

Kill all living particles.

- (void) stopSystem

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

- (void) update: (ccTime dt

called in every loop.

- (void) updateQuadWithParticle: (tCCParticle *)  particle
newPosition: (CGPoint)  pos 

should be overriden by subclasses


Property Documentation

- (BOOL) active [read, assign]

Is the emitter active

- (float) angle [read, write, assign]

angle and angle variation of each particle

- (float) angleVar [read, write, assign]

angle variance of each particle

- (BOOL) autoRemoveOnFinish [read, write, assign]

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

Since:
v0.8
- (CCParticleBatchNode*) batchNode [read, write, assign]

weak reference to the CCSpriteBatchNode that renders the CCSprite

- (BOOL) blendAdditive [read, write, assign]

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;
- (ccBlendFunc) blendFunc [read, write, assign]

conforms to CocosNodeTexture protocol

- (float) duration [read, write, assign]

How many seconds the emitter wil run. -1 means 'forever'

- (float) emissionRate [read, write, assign]

emission rate of the particles

- (NSInteger) emitterMode [read, write, assign]

Switch between different kind of emitter modes:

  • kCCParticleModeGravity: uses gravity, speed, radial and tangential acceleration
  • kCCParticleModeRadius: uses radius movement + rotation
- (ccColor4F) endColor [read, write, assign]

end color and end color variation of each particle

- (ccColor4F) endColorVar [read, write, assign]

end color variance of each particle

- (float) endRadius [read, write, assign]

The ending radius of the particles. Only available in 'Radius' mode.

- (float) endRadiusVar [read, write, assign]

The ending radius variance of the particles. Only available in 'Radius' mode.

- (float) endSize [read, write, assign]

end size in pixels of each particle

- (float) endSizeVar [read, write, assign]

end size variance in pixels of each particle

- (CGPoint) gravity [read, write, assign]

Gravity value. Only available in 'Gravity' mode.

- (float) life [read, write, assign]

life, and life variation of each particle

- (float) lifeVar [read, write, assign]

life variance of each particle

- (BOOL) opacityModifyRGB [read, write, assign]

does the alpha value modify color

- (NSUInteger) particleCount [read, assign]

Quantity of particles that are being simulated at the moment

- (tCCPositionType) positionType [read, write, assign]

particles movement type: Free or Grouped

Since:
v0.8
- (CGPoint) posVar [read, write, assign]

Position variance of the emitter

- (float) radialAccel [read, write, assign]

radial acceleration of each particle. Only available in 'Gravity' mode.

- (float) radialAccelVar [read, write, assign]

radial acceleration variance of each particle. Only available in 'Gravity' mode.

- (float) rotatePerSecond [read, write, assign]

Number of degress to rotate a particle around the source pos per second. Only available in 'Radius' mode.

- (float) rotatePerSecondVar [read, write, assign]

Variance in degrees for rotatePerSecond. Only available in 'Radius' mode.

- (CGPoint) sourcePosition [read, write, assign]

sourcePosition of the emitter

- (float) speed [read, write, assign]

speed of each particle. Only available in 'Gravity' mode.

- (float) speedVar [read, write, assign]

speed variance of each particle. Only available in 'Gravity' mode.

- (ccColor4F) startColor [read, write, assign]

start color of each particle

- (ccColor4F) startColorVar [read, write, assign]

start color variance of each particle

- (float) startRadius [read, write, assign]

The starting radius of the particles. Only available in 'Radius' mode.

- (float) startRadiusVar [read, write, assign]

The starting radius variance of the particles. Only available in 'Radius' mode.

- (float) startSize [read, write, assign]

start size in pixels of each particle

- (float) startSizeVar [read, write, assign]

size variance in pixels of each particle

- (float) tangentialAccel [read, write, assign]

tangential acceleration of each particle. Only available in 'Gravity' mode.

- (float) tangentialAccelVar [read, write, assign]

tangential acceleration variance of each particle. Only available in 'Gravity' mode.

- (CCTexture2D*) texture [read, write, retain]

conforms to CocosNodeTexture protocol

- (NSUInteger) totalParticles [read, write, assign]

maximum particles of the system


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