Constructor
new ParticleEmitter(position, angleopt, emitSizeopt, emitTimeopt, emitRateopt, emitConeAngleopt, tileInfoopt, colorStartAopt, colorStartBopt, colorEndAopt, colorEndBopt, particleTimeopt, sizeStartopt, sizeEndopt, speedopt, angleSpeedopt, dampingopt, angleDampingopt, gravityScaleopt, particleConeAngleopt, fadeRateopt, randomnessopt, collideTilesopt, additiveopt, randomColorLinearopt, renderOrderopt, localSpaceopt)
Create a particle system with the given settings
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
position | Vector2 | World space position of the emitter | ||
angle | Number | <optional> | 0 | Angle to emit the particles |
emitSize | Number | <optional> | 0 | World space size of the emitter (float for circle diameter, vec2 for rect) |
emitTime | Number | <optional> | 0 | How long to stay alive (0 is forever) |
emitRate | Number | <optional> | 100 | How many particles per second to spawn, does not emit if 0 |
emitConeAngle | Number | <optional> | PI | Local angle to apply velocity to particles from emitter |
tileInfo | TileInfo | <optional> | Tile info to render particles (undefined is untextured) | |
colorStartA | Color | <optional> | Color() | Color at start of life 1, randomized between start colors |
colorStartB | Color | <optional> | Color() | Color at start of life 2, randomized between start colors |
colorEndA | Color | <optional> | Color(1,1,1,0) | Color at end of life 1, randomized between end colors |
colorEndB | Color | <optional> | Color(1,1,1,0) | Color at end of life 2, randomized between end colors |
particleTime | Number | <optional> | .5 | How long particles live |
sizeStart | Number | <optional> | .1 | How big are particles at start |
sizeEnd | Number | <optional> | 1 | How big are particles at end |
speed | Number | <optional> | .1 | How fast are particles when spawned |
angleSpeed | Number | <optional> | .05 | How fast are particles rotating |
damping | Number | <optional> | 1 | How much to dampen particle speed |
angleDamping | Number | <optional> | 1 | How much to dampen particle angular speed |
gravityScale | Number | <optional> | 0 | How much does gravity effect particles |
particleConeAngle | Number | <optional> | PI | Cone for start particle angle |
fadeRate | Number | <optional> | .1 | How quick to fade in particles at start/end in percent of life |
randomness | Number | <optional> | .2 | Apply extra randomness percent |
collideTiles | Boolean | <optional> | 0 | Do particles collide against tiles |
additive | Boolean | <optional> | 0 | Should particles use addtive blend |
randomColorLinear | Boolean | <optional> | 1 | Should color be randomized linearly or across each component |
renderOrder | Number | <optional> | 0 | Render order for particles (additive is above other stuff by default) |
localSpace | Boolean | <optional> | 0 | Should it be in local space of emitter (world space is default) |
- Source
// create a particle emitter
let pos = vec2(2,3);
let particleEmiter = new ParticleEmitter
(
pos, 0, 1, 0, 500, PI, // pos, angle, emitSize, emitTime, emitRate, emiteCone
tile(0, 16), // tileInfo
new Color(1,1,1), new Color(0,0,0), // colorStartA, colorStartB
new Color(1,1,1,0), new Color(0,0,0,0), // colorEndA, colorEndB
2, .2, .2, .1, .05, // particleTime, sizeStart, sizeEnd, particleSpeed, particleAngleSpeed
.99, 1, 1, PI, .05, // damping, angleDamping, gravityScale, particleCone, fadeRate,
.5, 1 // randomness, collide, additive, randomColorLinear, renderOrder
);
Extends
Members
additive
PropertiesType | Description |
---|---|
Number | Should particles use addtive blend |
- Source
additiveColor
PropertiesType | Description |
---|---|
Color | Additive color to apply when rendered |
- Overrides
- Source
angle
PropertiesType | Description |
---|---|
Number | Angle to rotate the object |
- Overrides
- Source
angleDamping
PropertiesType | Description |
---|---|
Number | How much to dampen particle angular speed |
- Overrides
- Source
angleSpeed
PropertiesType | Description |
---|---|
Number | How fast are particles rotating |
- Source
angleVelocity
PropertiesName | Type | Attributes | Default | Description |
---|---|---|---|---|
angleVelocity | Number | <optional> | 0 | Angular velocity of the object |
- Overrides
- Source
collideTiles
PropertiesType | Description |
---|---|
Number | Do particles collide against tiles |
- Source
color
PropertiesType | Description |
---|---|
Color | Color to apply when rendered |
- Overrides
- Source
colorEndA
PropertiesType | Description |
---|---|
Color | Color at end of life 1, randomized between end colors |
- Source
colorEndB
PropertiesType | Description |
---|---|
Color | Color at end of life 2, randomized between end colors |
- Source
colorStartA
PropertiesType | Description |
---|---|
Color | Color at start of life 1, randomized between start colors |
- Source
colorStartB
PropertiesType | Description |
---|---|
Color | Color at start of life 2, randomized between start colors |
- Source
damping
PropertiesType | Description |
---|---|
Number | How much to dampen particle speed |
- Overrides
- Source
drawSize
PropertiesType | Description |
---|---|
Vector2 | Size of object used for drawing, uses size if not set |
- Overrides
- Source
elasticity
PropertiesName | Type | Attributes | Default | Description |
---|---|---|---|---|
elasticity | Number | <optional> | objectDefaultElasticity | How bouncy the object is when colliding (0-1) |
- Overrides
- Source
emitConeAngle
PropertiesType | Description |
---|---|
Number | Local angle to apply velocity to particles from emitter |
- Source
emitRate
PropertiesType | Description |
---|---|
Number | How many particles per second to spawn, does not emit if 0 |
- Source
emitSize
PropertiesType | Description |
---|---|
Number | World space size of the emitter (float for circle diameter, vec2 for rect) |
- Source
emitTime
PropertiesType | Description |
---|---|
Number | How long to stay alive (0 is forever) |
- Source
fadeRate
PropertiesType | Description |
---|---|
Number | How quick to fade in particles at start/end in percent of life |
- Source
friction
PropertiesName | Type | Attributes | Default | Description |
---|---|---|---|---|
friction | Number | <optional> | objectDefaultFriction | How much friction to apply when sliding (0-1) |
- Overrides
- Source
gravityScale
PropertiesType | Description |
---|---|
Number | How much does gravity effect particles |
- Overrides
- Source
localSpace
PropertiesType | Description |
---|---|
Boolean | Should it be in local space of emitter |
- Source
mass
PropertiesName | Type | Attributes | Default | Description |
---|---|---|---|---|
mass | Number | <optional> | objectDefaultMass | How heavy the object is, static if 0 |
- Overrides
- Source
particleConeAngle
PropertiesType | Description |
---|---|
Number | Cone for start particle angle |
- Source
particleTime
PropertiesType | Description |
---|---|
Number | How long particles live |
- Source
pos
PropertiesType | Description |
---|---|
Vector2 | World space position of the object |
- Overrides
- Source
randomColorLinear
PropertiesType | Description |
---|---|
Boolean | Should color be randomized linearly or across each component |
- Source
randomness
PropertiesType | Description |
---|---|
Number | Apply extra randomness percent |
- Source
renderOrder
PropertiesName | Type | Attributes | Default | Description |
---|---|---|---|---|
renderOrder | Number | <optional> | 0 | Objects are sorted by render order |
- Overrides
- Source
size
PropertiesType | Description |
---|---|
Vector2 | World space width and height of the object |
- Overrides
- Source
sizeEnd
PropertiesType | Description |
---|---|
Number | How big are particles at end |
- Source
sizeStart
PropertiesType | Description |
---|---|
Number | How big are particles at start |
- Source
speed
PropertiesType | Description |
---|---|
Number | How fast are particles when spawned |
- Source
tileInfo
PropertiesType | Description |
---|---|
TileInfo | Tile info to render object (undefined is untextured) |
- Overrides
- Source
trailScale
PropertiesType | Description |
---|---|
Number | If set the partile is drawn as a trail, stretched in the drection of velocity |
- Source
velocity
PropertiesName | Type | Attributes | Default | Description |
---|---|---|---|---|
velocity | Vector2 | <optional> | Vector2() | Velocity of the object |
- Overrides
- Source
Methods
addChild(child, localPosopt, localAngleopt)
Attaches a child to this with a given local transform
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
child | EngineObject | |||
localPos | Vector2 | <optional> | Vector2() | |
localAngle | Number | <optional> | 0 |
- Overrides
- Source
applyAcceleration(acceleration)
Apply acceleration to this object (adjust velocity, not affected by mass)
Name | Type | Description |
---|---|---|
acceleration | Vector2 |
- Overrides
- Source
applyForce(force)
Apply force to this object (adjust velocity, affected by mass)
Name | Type | Description |
---|---|---|
force | Vector2 |
- Overrides
- Source
collideWithObject(object) → {Boolean}
Called to check if a object collision should be resolved
Name | Type | Description |
---|---|---|
object | EngineObject | the object to test against |
- Overrides
- Source
- true if the collision should be resolved
- Type:
- Boolean
collideWithTile(tileData, pos) → {Boolean}
Called to check if a tile collision should be resolved
Name | Type | Description |
---|---|---|
tileData | Number | the value of the tile at the position |
pos | Vector2 | tile where the collision occured |
- Overrides
- Source
- true if the collision should be resolved
- Type:
- Boolean
collideWithTileRaycast(tileData, pos) → {Boolean}
Called to check if a tile raycast hit
Name | Type | Description |
---|---|---|
tileData | Number | the value of the tile at the position |
pos | Vector2 | tile where the raycast is |
- Overrides
- Source
- true if the raycast should hit
- Type:
- Boolean
destroy()
Destroy this object, destroy it's children, detach it's parent, and mark it for removal
- Overrides
- Source
emitParticle() → {Particle}
Spawn one particle
- Source
- Type:
- Particle
getAliveTime() → {Number}
How long since the object was created
- Overrides
- Source
- Type:
- Number
getMirrorSign() → {Number}
Get the direction of the mirror
- Overrides
- Source
-1 if this.mirror is true, or 1 if not mirrored
- Type:
- Number
removeChild(child)
Removes a child from this one
Name | Type | Description |
---|---|---|
child | EngineObject |
- Overrides
- Source
render()
Render the object, draws a tile by default, automatically called each frame, sorted by renderOrder
- Overrides
- Source
setCollision(collideSolidObjectsopt, isSolidopt, collideTilesopt)
Set how this object collides
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
collideSolidObjects | Boolean | <optional> | 1 | Does it collide with solid objects |
isSolid | Boolean | <optional> | 1 | Does it collide with and block other objects (expensive in large numbers) |
collideTiles | Boolean | <optional> | 1 | Does it collide with the tile collision |
- Overrides
- Source
toString() → {String}
Returns string containg info about this object for debugging
- Overrides
- Source
- Type:
- String
update()
Update the emitter to spawn particles, called automatically by engine once each frame
- Overrides
- Source