# Class: Emitter

## Emitter

Emitter is a lightweight particle emitter. It can be used for one-time explosions or for continuous effects like rain and fire. All it really does is launch Particle objects out at set intervals, and fixes their positions and velocities accorindgly.

#### new Emitter(game, x, y, maxParticles)

  Phaser - ArcadeEmitter

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `game` | Phaser.Game |  |  | Current game instance.
  `x` | number | <optional> | 0 | The x coordinate within the Emitter that the particles are emitted from.
  `y` | number | <optional> | 0 | The y coordinate within the Emitter that the particles are emitted from.
  `maxParticles` | number | <optional> | 50 | The total number of particles in this emitter..

  Source:
    - particles/arcade/Emitter.js, line 22

### Extends

- Phaser.Group

### Members

#### alive

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `alive` | boolean | The alive property is useful for Groups that are children of other Groups and need to be included/excluded in checks like forEachAlive.

  Inherited From:
    - Phaser.Group#alive
  Default Value:
    - true
  Source:
    - core/Group.js, line 69

#### alpha

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `alpha` | number | The alpha value of the Group container.

  Inherited From:
    - Phaser.Group#alpha
  Source:
    - core/Group.js, line 1730

#### alphaData

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `alphaData` | array | An array of the calculated alpha easing data applied to particles with alphaRates > 0.

  Source:
    - particles/arcade/Emitter.js, line 111

#### angle

  The angle of rotation of the Group container. This will adjust the Group container itself by modifying its rotation. This will have no impact on the rotation value of its children, but it will update their worldTransform and on-screen position.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `angle` | number | The angle of rotation given in degrees, where 0 degrees = to the right.

  Inherited From:
    - Phaser.Group#angle
  Source:
    - core/Group.js, line 1671

#### angularDrag

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `angularDrag` | number | The angular drag component of particles launched from the emitter if they are rotating.

  Default Value:
    - 0
  Source:
    - particles/arcade/Emitter.js, line 134

#### autoAlpha

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `autoAlpha` | boolean | When a new Particle is emitted this controls if it will automatically change alpha. Use Emitter.setAlpha to configure.

  Source:
    - particles/arcade/Emitter.js, line 195

#### autoScale

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `autoScale` | boolean | When a new Particle is emitted this controls if it will automatically scale in size. Use Emitter.setScale to configure.

  Source:
    - particles/arcade/Emitter.js, line 190

#### blendMode

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `blendMode` | number | The blendMode as set on the particle when emitted from the Emitter. Defaults to NORMAL. Needs browser capable of supporting canvas blend-modes (most not available in WebGL)

  Source:
    - particles/arcade/Emitter.js, line 169

#### <readonly> bottom

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `bottom` | number | Gets the bottom position of the Emitter.

  Source:
    - particles/arcade/Emitter.js, line 768

#### bounce

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `bounce` | Phaser.Point | How much each particle should bounce on each axis. 1 = full bounce, 0 = no bounce.

  Source:
    - particles/arcade/Emitter.js, line 151

#### cameraOffset

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `cameraOffset` | Phaser.Point | If this object is fixedToCamera then this stores the x/y offset that its drawn at, from the top-left of the camera view.

  Inherited From:
    - Phaser.Group#cameraOffset
  Source:
    - core/Group.js, line 108

#### classType

  The type of objects that will be created when you use Group.create or Group.createMultiple. Defaults to Phaser.Sprite. When a new object is created it is passed the following parameters to its constructor: game, x, y, key, frame.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `classType` | object |

  Inherited From:
    - Phaser.Group#classType
  Source:
    - core/Group.js, line 83

#### cursor

  The cursor is a simple way to iterate through the objects in a Group using the Group.next and Group.previous functions. The cursor is set to the first child added to the Group and doesn't change unless you call next, previous or set it directly with Group.cursor.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `cursor` | any | The current display object that the Group cursor is pointing to.

  Inherited From:
    - Phaser.Group#cursor
  Source:
    - core/Group.js, line 103

#### emitX

  The point the particles are emitted from. Emitter.x and Emitter.y control the containers location, which updates all current particles Emitter.emitX and Emitter.emitY control the emission location relative to the x/y position.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `emitX` | number |

  Source:
    - particles/arcade/Emitter.js, line 177

#### emitY

  The point the particles are emitted from. Emitter.x and Emitter.y control the containers location, which updates all current particles Emitter.emitX and Emitter.emitY control the emission location relative to the x/y position.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `emitY` | number |

  Source:
    - particles/arcade/Emitter.js, line 185

#### enableBody

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `enableBody` | boolean | If true all Sprites created by, or added to this Group, will have a physics body enabled on them. Change the body type with `Group.physicsBodyType`.

  Inherited From:
    - Phaser.Group#enableBody
  Default Value:
    - enableBody
  Source:
    - core/Group.js, line 114

#### enableBodyDebug

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `enableBodyDebug` | boolean | If true when a physics body is created (via Group.enableBody) it will create a physics debug object as well. Only works for P2 bodies.

  Inherited From:
    - Phaser.Group#enableBodyDebug
  Source:
    - core/Group.js, line 119

#### exists

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `exists` | boolean | If exists is true the Group is updated, otherwise it is skipped.

  Inherited From:
    - Phaser.Group#exists
  Default Value:
    - true
  Source:
    - core/Group.js, line 75

#### fixedToCamera

  A Group that is fixed to the camera uses its x/y coordinates as offsets from the top left of the camera. These are stored in Group.cameraOffset. Note that the cameraOffset values are in addition to any parent in the display list. So if this Group was in a Group that has x: 200, then this will be added to the cameraOffset.x

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `fixedToCamera` | boolean | Set to true to fix this Group to the Camera at its current world coordinates.

  Inherited From:
    - Phaser.Group#fixedToCamera
  Source:
    - core/Group.js, line 1689

#### frequency

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `frequency` | boolean | How often a particle is emitted in ms (if emitter is started with Explode === false).

  Default Value:
    - 100
  Source:
    - particles/arcade/Emitter.js, line 140

#### game

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | A reference to the currently running Game.

  Inherited From:
    - Phaser.Group#game
  Source:
    - core/Group.js, line 28

#### gravity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `gravity` | number | Sets the `body.gravity.y` of each particle sprite to this value on launch.

  Default Value:
    - 100
  Source:
    - particles/arcade/Emitter.js, line 117

#### height

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `height` | number | The height of the emitter. Particles can be randomly generated from anywhere within this box.

  Default Value:
    - 1
  Source:
    - particles/arcade/Emitter.js, line 53

#### <readonly> left

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `left` | number | Gets the left position of the Emitter.

  Source:
    - particles/arcade/Emitter.js, line 729

#### <readonly> length

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `length` | number | The total number of children in this Group, regardless of their exists/alive status.

  Inherited From:
    - Phaser.Group#length
  Source:
    - core/Group.js, line 1656

#### lifespan

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `lifespan` | number | How long each particle lives once it is emitted in ms. Default is 2 seconds. Set lifespan to 'zero' for particles to live forever.

  Default Value:
    - 2000
  Source:
    - particles/arcade/Emitter.js, line 146

#### maxParticleAlpha

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxParticleAlpha` | number | The maximum possible alpha value of a particle.

  Default Value:
    - 1
  Source:
    - particles/arcade/Emitter.js, line 106

#### maxParticles

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxParticles` | number | The total number of particles in this emitter..

  Source:
    - particles/arcade/Emitter.js, line 28

#### maxParticleScale

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxParticleScale` | number | The maximum possible scale of a particle. This is applied to the X and Y axis. If you need to control each axis see maxParticleScaleX.

  Default Value:
    - 1
  Source:
    - particles/arcade/Emitter.js, line 77

#### maxParticleSpeed

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxParticleSpeed` | Phaser.Point | The maximum possible velocity of a particle.

  Source:
    - particles/arcade/Emitter.js, line 65

#### maxRotation

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxRotation` | number | The maximum possible angular velocity of a particle.

  Default Value:
    - 360
  Source:
    - particles/arcade/Emitter.js, line 94

#### minParticleAlpha

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `minParticleAlpha` | number | The minimum possible alpha value of a particle.

  Default Value:
    - 1
  Source:
    - particles/arcade/Emitter.js, line 100

#### minParticleScale

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `minParticleScale` | number | The minimum possible scale of a particle. This is applied to the X and Y axis. If you need to control each axis see minParticleScaleX.

  Default Value:
    - 1
  Source:
    - particles/arcade/Emitter.js, line 71

#### minParticleSpeed

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `minParticleSpeed` | Phaser.Point | The minimum possible velocity of a particle.

  Source:
    - particles/arcade/Emitter.js, line 59

#### minRotation

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `minRotation` | number | The minimum possible angular velocity of a particle.

  Source:
    - particles/arcade/Emitter.js, line 88

#### name

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `name` | string | A handy string name for this emitter. Can be set to anything.

  Source:
    - particles/arcade/Emitter.js, line 35

#### on

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `on` | boolean | Determines whether the emitter is currently emitting particles. It is totally safe to directly toggle this.

  Default Value:
    - false
  Source:
    - particles/arcade/Emitter.js, line 157

#### particleAnchor

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `particleAnchor` | Phaser.Point | When a particle is created its anchor will be set to match this Point object (defaults to x/y: 0.5 to aid in rotation)

  Source:
    - particles/arcade/Emitter.js, line 163

#### particleBringToTop

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `particleBringToTop` | boolean | If this is `true` then when the Particle is emitted it will be bought to the top of the Emitters display list.

  Default Value:
    - false
  Source:
    - particles/arcade/Emitter.js, line 201

#### particleClass

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `particleClass` | any | For emitting your own particle class types. They must extend Phaser.Particle.

  Source:
    - particles/arcade/Emitter.js, line 123

#### particleDrag

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `particleDrag` | Phaser.Point | The X and Y drag component of particles launched from the emitter.

  Source:
    - particles/arcade/Emitter.js, line 128

#### particleSendToBack

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `particleSendToBack` | boolean | If this is `true` then when the Particle is emitted it will be sent to the back of the Emitters display list.

  Default Value:
    - false
  Source:
    - particles/arcade/Emitter.js, line 207

#### physicsBodyType

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `physicsBodyType` | number | If Group.enableBody is true this is the type of physics body that is created on new Sprites. Phaser.Physics.ARCADE, Phaser.Physics.P2, Phaser.Physics.NINJA, etc.

  Inherited From:
    - Phaser.Group#physicsBodyType
  Source:
    - core/Group.js, line 124

#### <readonly> right

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `right` | number | Gets the right position of the Emitter.

  Source:
    - particles/arcade/Emitter.js, line 742

#### rotation

  The angle of rotation of the Group container. This will adjust the Group container itself by modifying its rotation. This will have no impact on the rotation value of its children, but it will update their worldTransform and on-screen position.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `rotation` | number | The angle of rotation given in radians.

  Inherited From:
    - Phaser.Group#rotation
  Source:
    - core/Group.js, line 1726

#### scale

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `scale` | Phaser.Point | The scale of the Group container.

  Inherited From:
    - Phaser.Group#scale
  Source:
    - core/Group.js, line 92

#### scaleData

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `scaleData` | array | An array of the calculated scale easing data applied to particles with scaleRates > 0.

  Source:
    - particles/arcade/Emitter.js, line 82

#### <readonly> top

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `top` | number | Gets the top position of the Emitter.

  Source:
    - particles/arcade/Emitter.js, line 755

#### <readonly> total

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `total` | number | The total number of children in this Group who have a state of exists = true.

  Inherited From:
    - Phaser.Group#total
  Source:
    - core/Group.js, line 1641

#### <protected> type

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `type` | number | Internal Phaser Type value.

  Source:
    - particles/arcade/Emitter.js, line 41

#### visible

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `visible` | boolean | The visible state of the Group. Non-visible Groups and all of their children are not rendered.

  Inherited From:
    - Phaser.Group#visible
  Source:
    - core/Group.js, line 1728

#### width

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `width` | number | The width of the emitter. Particles can be randomly generated from anywhere within this box.

  Default Value:
    - 1
  Source:
    - particles/arcade/Emitter.js, line 47

#### x

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `x` | number | Gets or sets the x position of the Emitter.

  Source:
    - particles/arcade/Emitter.js, line 697

#### y

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `y` | number | Gets or sets the y position of the Emitter.

  Source:
    - particles/arcade/Emitter.js, line 713

#### z

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `z` | number | The z-depth value of this object within its Group (remember the World is a Group as well). No two objects in a Group can have the same z value.

  Inherited From:
    - Phaser.Group#z
  Source:
    - core/Group.js, line 57

### Methods

#### add(child) → {*}

  Adds an existing object to this Group. The object can be an instance of Phaser.Sprite, Phaser.Button or any other display object. The child is automatically added to the top of the Group, so renders on-top of everything else within the Group. If you need to control that then see the addAt method.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | An instance of Phaser.Sprite, Phaser.Button or any other display object..

  Inherited From:
    - Phaser.Group#add
  Source:
    - core/Group.js, line 184
  See:
    - Phaser.Group#create
    - Phaser.Group#addAt

  ##### Returns:

  The child that was added to the Group.

  Type
    *

#### addAll(property, amount, checkAlive, checkVisible)

  Adds the amount to the given property on all children in this Group. Group.addAll('x', 10) will add 10 to the child.x value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `property` | string | The property to increment, for example 'body.velocity.x' or 'angle'.
  `amount` | number | The amount to increment the property by. If child.x = 10 then addAll('x', 40) would make child.x = 50.
  `checkAlive` | boolean | If true the property will only be changed if the child is alive.
  `checkVisible` | boolean | If true the property will only be changed if the child is visible.

  Inherited From:
    - Phaser.Group#addAll
  Source:
    - core/Group.js, line 848

#### addAt(child, index) → {*}

  Adds an existing object to this Group. The object can be an instance of Phaser.Sprite, Phaser.Button or any other display object. The child is added to the Group at the location specified by the index value, this allows you to control child ordering.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | An instance of Phaser.Sprite, Phaser.Button or any other display object..
  `index` | number | The index within the Group to insert the child to.

  Inherited From:
    - Phaser.Group#addAt
  Source:
    - core/Group.js, line 223

  ##### Returns:

  The child that was added to the Group.

  Type
    *

#### ascendingSortHandler(a, b)

  An internal helper function for the sort process.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | object | The first object being sorted.
  `b` | object | The second object being sorted.

  Inherited From:
    - Phaser.Group#ascendingSortHandler
  Source:
    - core/Group.js, line 1250

#### at(object)

  Change the emitters center to match the center of any object with a `center` property, such as a Sprite. If the object doesn't have a center property it will be set to object.x + object.width / 2

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `object` | object | Phaser.Sprite | Phaser.Image | Phaser.TileSprite | Phaser.Text | PIXI.DisplayObject | The object that you wish to match the center with.

  Source:
    - particles/arcade/Emitter.js, line 675

#### bringToTop(child) → {*}

  Brings the given child to the top of this Group so it renders above all other children.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | The child to bring to the top of this Group.

  Inherited From:
    - Phaser.Group#bringToTop
  Source:
    - core/Group.js, line 465

  ##### Returns:

  The child that was moved.

  Type
    *

#### callAll(method, context, parameter)

  Calls a function on all of the children regardless if they are dead or alive (see callAllExists if you need control over that) After the method parameter and context you can add as many extra parameters as you like, which will all be passed to the child.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `method` | string |  |  | A string containing the name of the function that will be called. The function must exist on the child.
  `context` | string | <optional> | null | A string containing the context under which the method will be executed. Set to null to default to the child.
  `parameter` | * | <repeatable> |  | Additional parameters that will be passed to the method.

  Inherited From:
    - Phaser.Group#callAll
  Source:
    - core/Group.js, line 988

#### callAllExists(callback, existsValue, parameter)

  Calls a function on all of the children that have exists=true in this Group. After the existsValue parameter you can add as many parameters as you like, which will all be passed to the child callback.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `callback` | function |  | The function that exists on the children that will be called.
  `existsValue` | boolean |  | Only children with exists=existsValue will be called.
  `parameter` | * | <repeatable> | Additional parameters that will be passed to the callback.

  Inherited From:
    - Phaser.Group#callAllExists
  Source:
    - core/Group.js, line 912

#### <protected> callbackFromArray(child, callback, length)

  Returns a reference to a function that exists on a child of the Group based on the given callback array.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | object | The object to inspect.
  `callback` | array | The array of function names.
  `length` | number | The size of the array (pre-calculated in callAll).

  Inherited From:
    - Phaser.Group#callbackFromArray
  Source:
    - core/Group.js, line 935

#### countDead() → {number}

  Call this function to find out how many members of the group are dead.

  Inherited From:
    - Phaser.Group#countDead
  Source:
    - core/Group.js, line 1448

  ##### Returns:

  The number of children flagged as dead.

  Type
    number

#### countLiving() → {number}

  Call this function to find out how many members of the group are alive.

  Inherited From:
    - Phaser.Group#countLiving
  Source:
    - core/Group.js, line 1436

  ##### Returns:

  The number of children flagged as alive.

  Type
    number

#### create(x, y, key, frame, exists) → {Phaser.Sprite|object}

  Automatically creates a new Phaser.Sprite object and adds it to the top of this Group. You can change Group.classType to any object and this call will create an object of that type instead, but it should extend either Sprite or Image.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `x` | number |  |  | The x coordinate to display the newly created Sprite at. The value is in relation to the Group.x point.
  `y` | number |  |  | The y coordinate to display the newly created Sprite at. The value is in relation to the Group.y point.
  `key` | string |  |  | The Game.cache key of the image that this Sprite will use.
  `frame` | number | string | <optional> |  | If the Sprite image contains multiple frames you can specify which one to use here.
  `exists` | boolean | <optional> | true | The default exists state of the Sprite.

  Inherited From:
    - Phaser.Group#create
  Source:
    - core/Group.js, line 280

  ##### Returns:

  The child that was created. Will be a Phaser.Sprite unless Group.classType has been changed.

  Type
    Phaser.Sprite | object

#### createMultiple(quantity, key, frame, exists)

  Automatically creates multiple Phaser.Sprite objects and adds them to the top of this Group. Useful if you need to quickly generate a pool of identical sprites, such as bullets. By default the sprites will be set to not exist and will be positioned at 0, 0 (relative to the Group.x/y) You can change Group.classType to any object and this call will create an object of that type instead, but it should extend either Sprite or Image.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `quantity` | number |  |  | The number of Sprites to create.
  `key` | string |  |  | The Game.cache key of the image that this Sprite will use.
  `frame` | number | string | <optional> |  | If the Sprite image contains multiple frames you can specify which one to use here.
  `exists` | boolean | <optional> | false | The default exists state of the Sprite.

  Inherited From:
    - Phaser.Group#createMultiple
  Source:
    - core/Group.js, line 325

#### customSort(sortHandler, context)

  This allows you to use your own sort handler function. It will be sent two parameters: the two children involved in the comparison (a and b). It should return -1 if a > b, 1 if a < b or 0 if a === b.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sortHandler` | function | Your sort handler function. It will be sent two parameters: the two children involved in the comparison. It must return -1, 1 or 0.
  `context` | object | The scope in which the sortHandler is called.

  Inherited From:
    - Phaser.Group#customSort
  Source:
    - core/Group.js, line 1228

#### descendingSortHandler(a, b)

  An internal helper function for the sort process.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `a` | object | The first object being sorted.
  `b` | object | The second object being sorted.

  Inherited From:
    - Phaser.Group#descendingSortHandler
  Source:
    - core/Group.js, line 1281

#### destroy(destroyChildren, soft)

  Destroys this Group. Removes all children, then removes the container from the display list and nulls references.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `destroyChildren` | boolean | <optional> | true | Should every child of this Group have its destroy method called?
  `soft` | boolean | <optional> | false | A 'soft destroy' (set to true) doesn't remove this Group from its parent or null the game reference. Set to false and it does.

  Inherited From:
    - Phaser.Group#destroy
  Source:
    - core/Group.js, line 1610

#### divideAll(property, amount, checkAlive, checkVisible)

  Divides the given property by the amount on all children in this Group. Group.divideAll('x', 2) will half the child.x value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `property` | string | The property to divide, for example 'body.velocity.x' or 'angle'.
  `amount` | number | The amount to divide the property by. If child.x = 100 then divideAll('x', 2) would make child.x = 50.
  `checkAlive` | boolean | If true the property will only be changed if the child is alive.
  `checkVisible` | boolean | If true the property will only be changed if the child is visible.

  Inherited From:
    - Phaser.Group#divideAll
  Source:
    - core/Group.js, line 896

#### emitParticle()

  This function can be used both internally and externally to emit the next particle in the queue.

  Source:
    - particles/arcade/Emitter.js, line 439

#### forEach(callback, callbackContext, checkExists)

  Allows you to call your own function on each member of this Group. You must pass the callback and context in which it will run. After the checkExists parameter you can add as many parameters as you like, which will all be passed to the callback along with the child. For example: Group.forEach(awardBonusGold, this, true, 100, 500) Note: Currently this will skip any children which are Groups themselves.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `callback` | function |  |  | The function that will be called. Each child of the Group will be passed to it as its first parameter.
  `callbackContext` | Object |  |  | The context in which the function should be called (usually 'this').
  `checkExists` | boolean | <optional> | false | If set only children with exists=true will be passed to the callback, otherwise all children will be passed.

  Inherited From:
    - Phaser.Group#forEach
  Source:
    - core/Group.js, line 1111

#### forEachAlive(callback, callbackContext)

  Allows you to call your own function on each alive member of this Group (where child.alive=true). You must pass the callback and context in which it will run. You can add as many parameters as you like, which will all be passed to the callback along with the child. For example: Group.forEachAlive(causeDamage, this, 500)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | function | The function that will be called. Each child of the Group will be passed to it as its first parameter.
  `callbackContext` | Object | The context in which the function should be called (usually 'this').

  Inherited From:
    - Phaser.Group#forEachAlive
  Source:
    - core/Group.js, line 1158

#### forEachDead(callback, callbackContext)

  Allows you to call your own function on each dead member of this Group (where alive=false). You must pass the callback and context in which it will run. You can add as many parameters as you like, which will all be passed to the callback along with the child. For example: Group.forEachDead(bringToLife, this)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | function | The function that will be called. Each child of the Group will be passed to it as its first parameter.
  `callbackContext` | Object | The context in which the function should be called (usually 'this').

  Inherited From:
    - Phaser.Group#forEachDead
  Source:
    - core/Group.js, line 1176

#### forEachExists(callback, callbackContext)

  Allows you to call your own function on each member of this Group where child.exists=true. You must pass the callback and context in which it will run. You can add as many parameters as you like, which will all be passed to the callback along with the child. For example: Group.forEachExists(causeDamage, this, 500)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | function | The function that will be called. Each child of the Group will be passed to it as its first parameter.
  `callbackContext` | Object | The context in which the function should be called (usually 'this').

  Inherited From:
    - Phaser.Group#forEachExists
  Source:
    - core/Group.js, line 1140

#### getAt(index) → {*}

  Returns the child found at the given index within this Group.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `index` | number | The index to return the child from.

  Inherited From:
    - Phaser.Group#getAt
  Source:
    - core/Group.js, line 260

  ##### Returns:

  The child that was found at the given index. If the index was out of bounds then this will return -1.

  Type
    *

#### getBottom() → {Any}

  Returns the child at the bottom of this Group. The bottom is the one being displayed (rendered) below every other child.

  Inherited From:
    - Phaser.Group#getBottom
  Source:
    - core/Group.js, line 1421

  ##### Returns:

  The child at the bottom of the Group.

  Type
    Any

#### getFirstAlive() → {Any}

  Call this function to retrieve the first object with alive === true in the group. This is handy for checking if everything has been wiped out, or choosing a squad leader, etc.

  Inherited From:
    - Phaser.Group#getFirstAlive
  Source:
    - core/Group.js, line 1380

  ##### Returns:

  The first alive child, or null if none found.

  Type
    Any

#### getFirstDead() → {Any}

  Call this function to retrieve the first object with alive === false in the group. This is handy for checking if everything has been wiped out, or choosing a squad leader, etc.

  Inherited From:
    - Phaser.Group#getFirstDead
  Source:
    - core/Group.js, line 1393

  ##### Returns:

  The first dead child, or null if none found.

  Type
    Any

#### getFirstExists(state) → {Any}

  Call this function to retrieve the first object with exists == (the given state) in the Group.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `state` | boolean | True or false.

  Inherited From:
    - Phaser.Group#getFirstExists
  Source:
    - core/Group.js, line 1362

  ##### Returns:

  The first child, or null if none found.

  Type
    Any

#### getIndex(child) → {number}

  Get the index position of the given child in this Group. This should always match the childs z property.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | The child to get the index for.

  Inherited From:
    - Phaser.Group#getIndex
  Source:
    - core/Group.js, line 585

  ##### Returns:

  The index of the child or -1 if it's not a member of this Group.

  Type
    number

#### getRandom(startIndex, length) → {Any}

  Returns a member at random from the group.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `startIndex` | number | Optional offset off the front of the array. Default value is 0, or the beginning of the array.
  `length` | number | Optional restriction on the number of values you want to randomly select from.

  Inherited From:
    - Phaser.Group#getRandom
  Source:
    - core/Group.js, line 1460

  ##### Returns:

  A random child of this Group.

  Type
    Any

#### getTop() → {Any}

  Returns the child at the top of this Group. The top is the one being displayed (rendered) above every other child.

  Inherited From:
    - Phaser.Group#getTop
  Source:
    - core/Group.js, line 1406

  ##### Returns:

  The child at the top of the Group.

  Type
    Any

#### hasProperty(child, key) → {boolean}

  Checks if the child has the given property. Will scan up to 4 levels deep only.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | The child to check for the existance of the property on.
  `key` | array | An array of strings that make up the property.

  Inherited From:
    - Phaser.Group#hasProperty
  Source:
    - core/Group.js, line 634

  ##### Returns:

  True if the child has the property, otherwise false.

  Type
    boolean

#### iterate(key, value, returnType, callback, callbackContext) → {any}

  Iterates over the children of the Group. When a child has a property matching key that equals the given value, it is considered as a match. Matched children can be sent to the optional callback, or simply returned or counted. You can add as many callback parameters as you like, which will all be passed to the callback along with the child, after the callbackContext parameter.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `key` | string |  |  | The child property to check, i.e. 'exists', 'alive', 'health'
  `value` | any |  |  | If child.key === this value it will be considered a match. Note that a strict comparison is used.
  `returnType` | number |  |  | How to return the data from this method. Either Phaser.Group.RETURN_NONE, Phaser.Group.RETURN_TOTAL or Phaser.Group.RETURN_CHILD.
  `callback` | function | <optional> | null | Optional function that will be called on each matching child. Each child of the Group will be passed to it as its first parameter.
  `callbackContext` | Object | <optional> |  | The context in which the function should be called (usually 'this').

  Inherited From:
    - Phaser.Group#iterate
  Source:
    - core/Group.js, line 1305

  ##### Returns:

  Returns either a numeric total (if RETURN_TOTAL was specified) or the child object.

  Type
    any

#### kill()

  Call this function to turn off all the particles and the emitter.

  Source:
    - particles/arcade/Emitter.js, line 376

#### makeParticles(keys, frames, quantity, collide, collideWorldBounds) → {Phaser.Particles.Arcade.Emitter}

  This function generates a new set of particles for use by this emitter. The particles are stored internally waiting to be emitted via Emitter.start.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `keys` | array | string |  |  | A string or an array of strings that the particle sprites will use as their texture. If an array one is picked at random.
  `frames` | array | number | <optional> | 0 | A frame number, or array of frames that the sprite will use. If an array one is picked at random.
  `quantity` | number | <optional> |  | The number of particles to generate. If not given it will use the value of Emitter.maxParticles.
  `collide` | boolean | <optional> | false | If you want the particles to be able to collide with other Arcade Physics bodies then set this to true.
  `collideWorldBounds` | boolean | <optional> | false | A particle can be set to collide against the World bounds automatically and rebound back into the World if this is set to true. Otherwise it will leave the World.

  Source:
    - particles/arcade/Emitter.js, line 310

  ##### Returns:

  This Emitter instance.

  Type
    Phaser.Particles.Arcade.Emitter

#### moveDown(child) → {*}

  Moves the given child down one place in this Group unless it's already at the top.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | The child to move down in the Group.

  Inherited From:
    - Phaser.Group#moveDown
  Source:
    - core/Group.js, line 527

  ##### Returns:

  The child that was moved.

  Type
    *

#### moveUp(child) → {*}

  Moves the given child up one place in this Group unless it's already at the top.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | The child to move up in the Group.

  Inherited From:
    - Phaser.Group#moveUp
  Source:
    - core/Group.js, line 503

  ##### Returns:

  The child that was moved.

  Type
    *

#### multiplyAll(property, amount, checkAlive, checkVisible)

  Multiplies the given property by the amount on all children in this Group. Group.multiplyAll('x', 2) will x2 the child.x value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `property` | string | The property to multiply, for example 'body.velocity.x' or 'angle'.
  `amount` | number | The amount to multiply the property by. If child.x = 10 then multiplyAll('x', 2) would make child.x = 20.
  `checkAlive` | boolean | If true the property will only be changed if the child is alive.
  `checkVisible` | boolean | If true the property will only be changed if the child is visible.

  Inherited From:
    - Phaser.Group#multiplyAll
  Source:
    - core/Group.js, line 880

#### next() → {*}

  Advances the Group cursor to the next object in the Group. If it's at the end of the Group it wraps around to the first object.

  Inherited From:
    - Phaser.Group#next
  Source:
    - core/Group.js, line 390

  ##### Returns:

  The child the cursor now points to.

  Type
    *

#### <protected> postUpdate()

  The core postUpdate - as called by World.

  Inherited From:
    - Phaser.Group#postUpdate
  Source:
    - core/Group.js, line 1088

#### <protected> preUpdate()

  The core preUpdate - as called by World.

  Inherited From:
    - Phaser.Group#preUpdate
  Source:
    - core/Group.js, line 1048

#### previous() → {*}

  Moves the Group cursor to the previous object in the Group. If it's at the start of the Group it wraps around to the last object.

  Inherited From:
    - Phaser.Group#previous
  Source:
    - core/Group.js, line 417

  ##### Returns:

  The child the cursor now points to.

  Type
    *

#### remove(child, destroy) → {boolean}

  Removes the given child from this Group. This will dispatch an onRemovedFromGroup event from the child (if it has one), reset the Group cursor and optionally destroy the child.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `child` | Any |  |  | The child to remove.
  `destroy` | boolean | <optional> | false | You can optionally call destroy on the child that was removed.

  Inherited From:
    - Phaser.Group#remove
  Source:
    - core/Group.js, line 1482

  ##### Returns:

  true if the child was removed from this Group, otherwise false.

  Type
    boolean

#### removeAll(destroy)

  Removes all children from this Group, setting all group properties to null. The Group container remains on the display list.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `destroy` | boolean | <optional> | false | You can optionally call destroy on the child that was removed.

  Inherited From:
    - Phaser.Group#removeAll
  Source:
    - core/Group.js, line 1523

#### removeBetween(startIndex, endIndex, destroy)

  Removes all children from this Group whos index falls beteen the given startIndex and endIndex values.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `startIndex` | number |  |  | The index to start removing children from.
  `endIndex` | number | <optional> |  | The index to stop removing children at. Must be higher than startIndex. If undefined this method will remove all children between startIndex and the end of the Group.
  `destroy` | boolean | <optional> | false | You can optionally call destroy on the child that was removed.

  Inherited From:
    - Phaser.Group#removeBetween
  Source:
    - core/Group.js, line 1559

#### replace(oldChild, newChild) → {*}

  Replaces a child of this Group with the given newChild. The newChild cannot be a member of this Group.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `oldChild` | * | The child in this Group that will be replaced.
  `newChild` | * | The child to be inserted into this Group.

  Inherited From:
    - Phaser.Group#replace
  Source:
    - core/Group.js, line 598

  ##### Returns:

  Returns the oldChild that was replaced within this Group.

  Type
    *

#### resetCursor(index) → {*}

  Sets the Group cursor to the first object in the Group. If the optional index parameter is given it sets the cursor to the object at that index instead.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `index` | number | <optional> | 0 | Set the cursor to point to a specific index.

  Inherited From:
    - Phaser.Group#resetCursor
  Source:
    - core/Group.js, line 365

  ##### Returns:

  The child the cursor now points to.

  Type
    *

#### reverse()

  Reverses all children in this Group. Note that this does not propagate, only direct children are re-ordered.

  Inherited From:
    - Phaser.Group#reverse
  Source:
    - core/Group.js, line 573

#### revive()

  Handy for bringing game objects "back to life". Just sets alive and exists back to true.

  Source:
    - particles/arcade/Emitter.js, line 389

#### sendToBack(child) → {*}

  Sends the given child to the bottom of this Group so it renders below all other children.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child` | * | The child to send to the bottom of this Group.

  Inherited From:
    - Phaser.Group#sendToBack
  Source:
    - core/Group.js, line 484

  ##### Returns:

  The child that was moved.

  Type
    *

#### set(child, key, value, checkAlive, checkVisible, operation, force) → {boolean}

  This function allows you to quickly set a property on a single child of this Group to a new value. The operation parameter controls how the new value is assigned to the property, from simple replacement to addition and multiplication.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `child` | Phaser.Sprite |  |  | The child to set the property on.
  `key` | string |  |  | The property, as a string, to be set. For example: 'body.velocity.x'
  `value` | * |  |  | The value that will be set.
  `checkAlive` | boolean | <optional> | false | If set then the child will only be updated if alive=true.
  `checkVisible` | boolean | <optional> | false | If set then the child will only be updated if visible=true.
  `operation` | number | <optional> | 0 | Controls how the value is assigned. A value of 0 replaces the value with the new one. A value of 1 adds it, 2 subtracts it, 3 multiplies it and 4 divides it.
  `force` | boolean | <optional> | false | If `force` is true then the property will be set on the child regardless if it already exists or not. If false and the property doesn't exist, nothing will be set.

  Inherited From:
    - Phaser.Group#set
  Source:
    - core/Group.js, line 743

  ##### Returns:

  True if the property was set, false if not.

  Type
    boolean

#### setAll(key, value, checkAlive, checkVisible, operation, force)

  This function allows you to quickly set the same property across all children of this Group to a new value. This call doesn't descend down children, so if you have a Group inside of this Group, the property will be set on the Group but not its children. If you need that ability please see `Group.setAllChildren`.

  The operation parameter controls how the new value is assigned to the property, from simple replacement to addition and multiplication.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `key` | string |  |  | The property, as a string, to be set. For example: 'body.velocity.x'
  `value` | * |  |  | The value that will be set.
  `checkAlive` | boolean | <optional> | false | If set then only children with alive=true will be updated. This includes any Groups that are children.
  `checkVisible` | boolean | <optional> | false | If set then only children with visible=true will be updated. This includes any Groups that are children.
  `operation` | number | <optional> | 0 | Controls how the value is assigned. A value of 0 replaces the value with the new one. A value of 1 adds it, 2 subtracts it, 3 multiplies it and 4 divides it.
  `force` | boolean | <optional> | false | If `force` is true then the property will be set on the child regardless if it already exists or not. If false and the property doesn't exist, nothing will be set.

  Inherited From:
    - Phaser.Group#setAll
  Source:
    - core/Group.js, line 773

#### setAllChildren(key, value, checkAlive, checkVisible, operation, force)

  This function allows you to quickly set the same property across all children of this Group, and any child Groups, to a new value.

  If this Group contains other Groups then the same property is set across their children as well, iterating down until it reaches the bottom. Unlike with Group.setAll the property is NOT set on child Groups itself.

  The operation parameter controls how the new value is assigned to the property, from simple replacement to addition and multiplication.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `key` | string |  |  | The property, as a string, to be set. For example: 'body.velocity.x'
  `value` | * |  |  | The value that will be set.
  `checkAlive` | boolean | <optional> | false | If set then only children with alive=true will be updated. This includes any Groups that are children.
  `checkVisible` | boolean | <optional> | false | If set then only children with visible=true will be updated. This includes any Groups that are children.
  `operation` | number | <optional> | 0 | Controls how the value is assigned. A value of 0 replaces the value with the new one. A value of 1 adds it, 2 subtracts it, 3 multiplies it and 4 divides it.
  `force` | boolean | <optional> | false | If `force` is true then the property will be set on the child regardless if it already exists or not. If false and the property doesn't exist, nothing will be set.

  Inherited From:
    - Phaser.Group#setAllChildren
  Source:
    - core/Group.js, line 807

#### setAlpha(min, max, rate, ease, yoyo)

  A more compact way of setting the alpha constraints of the particles. The rate parameter, if set to a value above zero, lets you set the speed at which the Particle change in alpha from min to max. If rate is zero, which is the default, the particle won't change alpha - instead it will pick a random alpha between min and max on emit.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `min` | number | <optional> | 1 | The minimum value for this range.
  `max` | number | <optional> | 1 | The maximum value for this range.
  `rate` | number | <optional> | 0 | The rate (in ms) at which the particles will change in alpha from min to max, or set to zero to pick a random alpha between the two.
  `ease` | number | <optional> | Phaser.Easing.Linear.None | If you've set a rate > 0 this is the easing formula applied between the min and max values.
  `yoyo` | boolean | <optional> | false | If you've set a rate > 0 you can set if the ease will yoyo or not (i.e. ease back to its original values)

  Source:
    - particles/arcade/Emitter.js, line 588

#### setProperty(child, key, value, operation, force) → {boolean}

  Sets a property to the given value on the child. The operation parameter controls how the value is set. Operation 0 means set the existing value to the given value, or if force is `false` create a new property with the given value. 1 will add the given value to the value already present. 2 will subtract the given value from the value already present. 3 will multiply the value already present by the given value. 4 will divide the value already present by the given value.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `child` | * |  |  | The child to set the property value on.
  `key` | array |  |  | An array of strings that make up the property that will be set.
  `value` | * |  |  | The value that will be set.
  `operation` | number | <optional> | 0 | Controls how the value is assigned. A value of 0 replaces the value with the new one. A value of 1 adds it, 2 subtracts it, 3 multiplies it and 4 divides it.
  `force` | boolean | <optional> | false | If `force` is true then the property will be set on the child regardless if it already exists or not. If false and the property doesn't exist, nothing will be set.

  Inherited From:
    - Phaser.Group#setProperty
  Source:
    - core/Group.js, line 667

  ##### Returns:

  True if the property was set, false if not.

  Type
    boolean

#### setRotation(min, max)

  A more compact way of setting the angular velocity constraints of the particles.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `min` | number | <optional> | 0 | The minimum value for this range.
  `max` | number | <optional> | 0 | The maximum value for this range.

  Source:
    - particles/arcade/Emitter.js, line 571

#### setScale(minX, maxX, minY, maxY, rate, ease, yoyo)

  A more compact way of setting the scale constraints of the particles. The rate parameter, if set to a value above zero, lets you set the speed and ease which the Particle uses to change in scale from min to max across both axis. If rate is zero, which is the default, the particle won't change scale during update, instead it will pick a random scale between min and max on emit.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `minX` | number | <optional> | 1 | The minimum value of Particle.scale.x.
  `maxX` | number | <optional> | 1 | The maximum value of Particle.scale.x.
  `minY` | number | <optional> | 1 | The minimum value of Particle.scale.y.
  `maxY` | number | <optional> | 1 | The maximum value of Particle.scale.y.
  `rate` | number | <optional> | 0 | The rate (in ms) at which the particles will change in scale from min to max, or set to zero to pick a random size between the two.
  `ease` | number | <optional> | Phaser.Easing.Linear.None | If you've set a rate > 0 this is the easing formula applied between the min and max values.
  `yoyo` | boolean | <optional> | false | If you've set a rate > 0 you can set if the ease will yoyo or not (i.e. ease back to its original values)

  Source:
    - particles/arcade/Emitter.js, line 627

#### setSize(width, height)

  A more compact way of setting the width and height of the emitter.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `width` | number | The desired width of the emitter (particles are spawned randomly within these dimensions).
  `height` | number | The desired height of the emitter.

  Source:
    - particles/arcade/Emitter.js, line 526

#### setXSpeed(min, max)

  A more compact way of setting the X velocity range of the emitter.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `min` | number | <optional> | 0 | The minimum value for this range.
  `max` | number | <optional> | 0 | The maximum value for this range.

  Source:
    - particles/arcade/Emitter.js, line 539

#### setYSpeed(min, max)

  A more compact way of setting the Y velocity range of the emitter.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `min` | number | <optional> | 0 | The minimum value for this range.
  `max` | number | <optional> | 0 | The maximum value for this range.

  Source:
    - particles/arcade/Emitter.js, line 555

#### sort(index, order)

  Call this function to sort the group according to a particular value and order. For example to depth sort Sprites for Zelda-style game you might call `group.sort('y', Phaser.Group.SORT_ASCENDING)` at the bottom of your `State.update()`.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `index` | string | <optional> | 'z' | The `string` name of the property you want to sort on. Defaults to the objects z-depth value.
  `order` | number | <optional> | Phaser.Group.SORT_ASCENDING | The `Group` constant that defines the sort order. Possible values are Phaser.Group.SORT_ASCENDING and Phaser.Group.SORT_DESCENDING.

  Inherited From:
    - Phaser.Group#sort
  Source:
    - core/Group.js, line 1194

#### start(explode, lifespan, frequency, quantity)

  Call this function to start emitting particles.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `explode` | boolean | <optional> | true | Whether the particles should all burst out at once (true) or at the frequency given (false).
  `lifespan` | number | <optional> | 0 | How long each particle lives once emitted in ms. 0 = forever.
  `frequency` | number | <optional> | 250 | Ignored if Explode is set to true. Frequency is how often to emit 1 particle. Value given in ms.
  `quantity` | number | <optional> | 0 | How many particles to launch. 0 = "all of the particles".

  Source:
    - particles/arcade/Emitter.js, line 401

#### subAll(property, amount, checkAlive, checkVisible)

  Subtracts the amount from the given property on all children in this Group. Group.subAll('x', 10) will minus 10 from the child.x value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `property` | string | The property to decrement, for example 'body.velocity.x' or 'angle'.
  `amount` | number | The amount to subtract from the property. If child.x = 50 then subAll('x', 40) would make child.x = 10.
  `checkAlive` | boolean | If true the property will only be changed if the child is alive.
  `checkVisible` | boolean | If true the property will only be changed if the child is visible.

  Inherited From:
    - Phaser.Group#subAll
  Source:
    - core/Group.js, line 864

#### swap(child1, child2)

  Swaps the position of two children in this Group. Both children must be in this Group. You cannot swap a child with itself, or swap un-parented children, doing so will return false.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `child1` | * | The first child to swap.
  `child2` | * | The second child to swap.

  Inherited From:
    - Phaser.Group#swap
  Source:
    - core/Group.js, line 444

#### update()

  Called automatically by the game loop, decides when to launch particles and when to "die".

  Source:
    - particles/arcade/Emitter.js, line 256

#### <protected> updateZ()

  Internal method that re-applies all of the childrens Z values.

  Inherited From:
    - Phaser.Group#updateZ
  Source:
    - core/Group.js, line 348

#### xy(index, x, y)

  Positions the child found at the given index within this Group to the given x and y coordinates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `index` | number | The index of the child in the Group to set the position of.
  `x` | number | The new x position of the child.
  `y` | number | The new y position of the child.

  Inherited From:
    - Phaser.Group#xy
  Source:
    - core/Group.js, line 551