# Class: Body

## Phaser .Physics .Arcade. Body

Arcade Physics Body Constructor

#### new Body(sprite)

  The Physics Body is linked to a single Sprite. All physics operations should be performed against the body rather than the Sprite itself. For example you can set the velocity, acceleration, bounce values etc all on the Body.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sprite` | Phaser.Sprite | The Sprite object this physics body belongs to.

  Source:
    - physics/arcade/Body.js, line 16

### Members

#### acceleration

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `acceleration` | Phaser.Point | The velocity in pixels per second sq. of the Body.

  Source:
    - physics/arcade/Body.js, line 123

#### allowGravity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `allowGravity` | boolean | Allow this Body to be influenced by gravity? Either world or local.

  Default Value:
    - true
  Source:
    - physics/arcade/Body.js, line 134

#### allowRotation

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `allowRotation` | boolean | Allow this Body to be rotated? (via angularVelocity, etc)

  Default Value:
    - true
  Source:
    - physics/arcade/Body.js, line 54

#### <readonly> angle

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `angle` | number | The angle of the Body in radians as calculated by its velocity, rather than its visual angle.

  Source:
    - physics/arcade/Body.js, line 186

#### angularAcceleration

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `angularAcceleration` | number | The angular acceleration in pixels per second sq. of the Body.

  Default Value:
    - 0
  Source:
    - physics/arcade/Body.js, line 162

#### angularDrag

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `angularDrag` | number | The angular drag applied to the rotation of the Body.

  Default Value:
    - 0
  Source:
    - physics/arcade/Body.js, line 168

#### angularVelocity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `angularVelocity` | number | The angular velocity in pixels per second sq. of the Body.

  Default Value:
    - 0
  Source:
    - physics/arcade/Body.js, line 156

#### blocked

  This object is populated with boolean values when the Body collides with the World bounds or a Tile. For example if blocked.up is true then the Body cannot move up.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `blocked` | object | An object containing on which faces this Body is blocked from moving, if any.

  Source:
    - physics/arcade/Body.js, line 280

#### <readonly> bottom

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `bottom` | number | The bottom value of this Body (same as Body.y + Body.height)

  Source:
    - physics/arcade/Body.js, line 700

#### bounce

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `bounce` | Phaser.Point | The elasticitiy of the Body when colliding. bounce.x/y = 1 means full rebound, bounce.x/y = 0.5 means 50% rebound velocity.

  Source:
    - physics/arcade/Body.js, line 144

#### center

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `center` | Phaser.Point | The center coordinate of the Physics Body.

  Source:
    - physics/arcade/Body.js, line 102

#### checkCollision

  Set the checkCollision properties to control which directions collision is processed for this Body. For example checkCollision.up = false means it won't collide when the collision happened while moving up.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `checkCollision` | object | An object containing allowed collision.

  Source:
    - physics/arcade/Body.js, line 260

#### collideWorldBounds

  A Body 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.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `collideWorldBounds` | boolean | Should the Body collide with the World bounds?

  Source:
    - physics/arcade/Body.js, line 253

#### customSeparateX

  This flag allows you to disable the custom x separation that takes place by Physics.Arcade.separate. Used in combination with your own collision processHandler you can create whatever type of collision response you need.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `customSeparateX` | boolean | Use a custom separation system or the built-in one?

  Default Value:
    - false
  Source:
    - physics/arcade/Body.js, line 221

#### customSeparateY

  This flag allows you to disable the custom y separation that takes place by Physics.Arcade.separate. Used in combination with your own collision processHandler you can create whatever type of collision response you need.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `customSeparateY` | boolean | Use a custom separation system or the built-in one?

  Default Value:
    - false
  Source:
    - physics/arcade/Body.js, line 229

#### deltaMax

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `deltaMax` | Phaser.Point | The Sprite position is updated based on the delta x/y values. You can set a cap on those (both +-) using deltaMax.

  Source:
    - physics/arcade/Body.js, line 118

#### drag

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `drag` | Phaser.Point | The drag applied to the motion of the Body.

  Source:
    - physics/arcade/Body.js, line 128

#### embedded

  If a body is overlapping with another body, but neither of them are moving (maybe they spawned on-top of each other?) this is set to true.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `embedded` | boolean | Body embed value.

  Source:
    - physics/arcade/Body.js, line 247

#### facing

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `facing` | number | A const reference to the direction the Body is traveling or facing.

  Source:
    - physics/arcade/Body.js, line 198

#### game

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | Local reference to game.

  Source:
    - physics/arcade/Body.js, line 26

#### gravity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `gravity` | Phaser.Point | A local gravity applied to this Body. If non-zero this over rides any world gravity, unless Body.allowGravity is set to false.

  Source:
    - physics/arcade/Body.js, line 139

#### halfHeight

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `halfHeight` | number | The calculated height / 2 of the physics body.

  Source:
    - physics/arcade/Body.js, line 97

#### halfWidth

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `halfWidth` | number | The calculated width / 2 of the physics body.

  Source:
    - physics/arcade/Body.js, line 92

#### height

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `.numInternal` |  | ID cache

  Source:
    - physics/arcade/Body.js, line 87

#### immovable

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `immovable` | boolean | An immovable Body will not receive any impacts from other bodies.

  Default Value:
    - false
  Source:
    - physics/arcade/Body.js, line 204

#### mass

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `mass` | number | The mass of the Body.

  Default Value:
    - 1
  Source:
    - physics/arcade/Body.js, line 180

#### maxAngular

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxAngular` | number | The maximum angular velocity in pixels per second sq. that the Body can reach.

  Default Value:
    - 1000
  Source:
    - physics/arcade/Body.js, line 174

#### maxVelocity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `maxVelocity` | Phaser.Point | The maximum velocity in pixels per second sq. that the Body can reach.

  Source:
    - physics/arcade/Body.js, line 150

#### moves

  If you have a Body that is being moved around the world via a tween or a Group motion, but its local x/y position never actually changes, then you should set Body.moves = false. Otherwise it will most likely fly off the screen. If you want the physics system to move the body around, then set moves to true.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `moves` | boolean | Set to true to allow the Physics system to move this Body, other false to move it manually.

  Default Value:
    - true
  Source:
    - physics/arcade/Body.js, line 213

#### <readonly> newVelocity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `newVelocity` | Phaser.Point | New velocity.

  Source:
    - physics/arcade/Body.js, line 113

#### offset

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `offset` | Phaser.Point | The offset of the Physics Body from the Sprite x/y position.

  Source:
    - physics/arcade/Body.js, line 36

#### overlapX

  When this body collides with another, the amount of overlap is stored here.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `overlapX` | number | The amount of horizontal overlap during the collision.

  Source:
    - physics/arcade/Body.js, line 235

#### overlapY

  When this body collides with another, the amount of overlap is stored here.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `overlapY` | number | The amount of vertical overlap during the collision.

  Source:
    - physics/arcade/Body.js, line 241

#### phase

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `phaser` | number | Is this Body in a preUpdate (1) or postUpdate (2) state?

  Source:
    - physics/arcade/Body.js, line 292

#### <readonly> position

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `position` | Phaser.Point | The position of the physics body.

  Source:
    - physics/arcade/Body.js, line 42

#### <readonly> preRotation

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `preRotation` | number | The previous rotation of the physics body.

  Source:
    - physics/arcade/Body.js, line 65

#### <readonly> prev

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `prev` | Phaser.Point | The previous position of the physics body.

  Source:
    - physics/arcade/Body.js, line 48

#### <readonly> right

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `right` | number | The right value of this Body (same as Body.x + Body.width)

  Source:
    - physics/arcade/Body.js, line 713

#### rotation

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `rotation` | number | The amount the Body is rotated.

  Source:
    - physics/arcade/Body.js, line 59

#### <readonly> sourceHeight

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `sourceHeight` | number | The un-scaled original size.

  Source:
    - physics/arcade/Body.js, line 77

#### <readonly> sourceWidth

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `sourceWidth` | number | The un-scaled original size.

  Source:
    - physics/arcade/Body.js, line 71

#### <readonly> speed

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `speed` | number | The speed of the Body as calculated by its velocity.

  Source:
    - physics/arcade/Body.js, line 192

#### sprite

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `sprite` | Phaser.Sprite | Reference to the parent Sprite.

  Source:
    - physics/arcade/Body.js, line 21

#### tilePadding

  If this is an especially small or fast moving object then it can sometimes skip over tilemap collisions if it moves through a tile in a step. Set this padding value to add extra padding to its bounds. tilePadding.x applied to its width, y to its height.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `tilePadding` | Phaser.Point | Extra padding to be added to this sprites dimensions when checking for tile collision.

  Source:
    - physics/arcade/Body.js, line 287

#### touching

  This object is populated with boolean values when the Body collides with another. touching.up = true means the collision happened to the top of this Body for example.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `touching` | object | An object containing touching results.

  Source:
    - physics/arcade/Body.js, line 267

#### type

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `type` | number | The type of physics system this body belongs to.

  Source:
    - physics/arcade/Body.js, line 31

#### velocity

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `velocity` | Phaser.Point | The velocity in pixels per second sq. of the Body.

  Source:
    - physics/arcade/Body.js, line 107

#### wasTouching

  This object is populated with previous touching values from the bodies previous collision.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `wasTouching` | object | An object containing previous touching results.

  Source:
    - physics/arcade/Body.js, line 273

#### width

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `width` | number | The calculated width of the physics body.

  Source:
    - physics/arcade/Body.js, line 82

#### x

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The x position.

  Source:
    - physics/arcade/Body.js, line 726

#### y

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `y` | number | The y position.

  Source:
    - physics/arcade/Body.js, line 743

### Methods

#### <protected> checkWorldBounds()

  Internal method.

  Source:
    - physics/arcade/Body.js, line 519

#### deltaAbsX() → {number}

  Returns the absolute delta x value.

  Source:
    - physics/arcade/Body.js, line 648

  ##### Returns:

  The absolute delta value.

  Type
    number

#### deltaAbsY() → {number}

  Returns the absolute delta y value.

  Source:
    - physics/arcade/Body.js, line 658

  ##### Returns:

  The absolute delta value.

  Type
    number

#### deltaX() → {number}

  Returns the delta x value. The difference between Body.x now and in the previous step.

  Source:
    - physics/arcade/Body.js, line 668

  ##### Returns:

  The delta value. Positive if the motion was to the right, negative if to the left.

  Type
    number

#### deltaY() → {number}

  Returns the delta y value. The difference between Body.y now and in the previous step.

  Source:
    - physics/arcade/Body.js, line 678

  ##### Returns:

  The delta value. Positive if the motion was downwards, negative if upwards.

  Type
    number

#### deltaZ() → {number}

  Returns the delta z value. The difference between Body.rotation now and in the previous step.

  Source:
    - physics/arcade/Body.js, line 688

  ##### Returns:

  The delta value. Positive if the motion was clockwise, negative if anti-clockwise.

  Type
    number

#### destroy()

  Removes this bodies reference to its parent sprite, freeing it up for gc.

  Source:
    - physics/arcade/Body.js, line 508

#### hitTest(x, y) → {boolean}

  Tests if a world point lies within this Body.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The world x coordinate to test.
  `y` | number | The world y coordinate to test.

  Source:
    - physics/arcade/Body.js, line 614

  ##### Returns:

  True if the given coordinates are inside this Body, otherwise false.

  Type
    boolean

#### onFloor() → {boolean}

  Returns true if the bottom of this Body is in contact with either the world bounds or a tile.

  Source:
    - physics/arcade/Body.js, line 628

  ##### Returns:

  True if in contact with either the world bounds or a tile.

  Type
    boolean

#### onWall() → {boolean}

  Returns true if either side of this Body is in contact with either the world bounds or a tile.

  Source:
    - physics/arcade/Body.js, line 638

  ##### Returns:

  True if in contact with either the world bounds or a tile.

  Type
    boolean

#### <protected> postUpdate()

  Internal method.

  Source:
    - physics/arcade/Body.js, line 429

#### <protected> preUpdate()

  Internal method.

  Source:
    - physics/arcade/Body.js, line 354

#### renderBodyInfo(body, x, y, color)

  Render Sprite Body Physics Data as text.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `body` | Phaser.Physics.Arcade.Body |  |  | The Body to render the info of.
  `x` | number |  |  | X position of the debug info to be rendered.
  `y` | number |  |  | Y position of the debug info to be rendered.
  `color` | string | <optional> | 'rgb(255,255,255)' | color of the debug info to be rendered. (format is css color string).

  Source:
    - physics/arcade/Body.js, line 789

#### renderDebug(context, body, color, filled)

  Render Sprite Body.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `context` | object |  |  | The context to render to.
  `body` | Phaser.Physics.Arcade.Body |  |  | The Body to render the info of.
  `color` | string | <optional> | 'rgb(255,255,255)' | color of the debug info to be rendered. (format is css color string).
  `filled` | boolean | <optional> | true | Render the objected as a filled (default, true) or a stroked (false)

  Source:
    - physics/arcade/Body.js, line 761

#### reset(x, y)

  Resets all Body values (velocity, acceleration, rotation, etc)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `x` | number | The new x position of the Body.
  `y` | number | The new y position of the Body.

  Source:
    - physics/arcade/Body.js, line 583

#### setSize(width, height, offsetX, offsetY)

  You can modify the size of the physics Body to be any dimension you need. So it could be smaller or larger than the parent Sprite. You can also control the x and y offset, which is the position of the Body relative to the top-left of the Sprite.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `width` | number | The width of the Body.
  `height` | number | The height of the Body.
  `offsetX` | number | The X offset of the Body from the Sprite position.
  `offsetY` | number | The Y offset of the Body from the Sprite position.

  Source:
    - physics/arcade/Body.js, line 555

#### <protected> updateBounds()

  Internal method.

  Source:
    - physics/arcade/Body.js, line 328