Options
All
• Public
• Public/Protected
• All

# Class Body

• Body

## Constructors

### constructor

• Constructs a new physics body associated with an actor

## Properties

### acc

acc: Vector = new Vector(0, 0)

The curret acceleration vector (ax, ay) of the actor in pixels/second/second. An acceleration pointing down such as (0, 100) may be useful to simulate a gravitational effect.

actor: Actor

### collisionArea

collisionArea: ICollisionArea = null

Collision area of this physics body, defines the shape for rigid body collision

### friction

friction: number = 0.99

The coefficient of friction on this actor

### mass

mass: number = 1

The current mass of the actor, mass can be thought of as the resistance to acceleration.

### moi

moi: number = 1000

The current moment of inertia, moi can be thought of as the resistance to rotation.

### motion

motion: number = 10

The current "motion" of the actor, used to calculated sleep in the physics simulation

### oldPos

oldPos: Vector = new Vector(0, 0)

The position of the actor last frame (x, y) in pixels

### oldVel

oldVel: Vector = new Vector(0, 0)

The velocity of the actor last frame (vx, vy) in pixels/second

### pos

pos: Vector = new Vector(0, 0)

The (x, y) position of the actor this will be in the middle of the actor if the Actor.anchor is set to (0.5, 0.5) which is default. If you want the (x, y) position to be the top left of the actor specify an anchor of (0, 0).

### restitution

restitution: number = 0.2

The coefficient of restitution of this actor, represents the amount of energy preserved after collision

### rotation

rotation: number = 0

The rotation of the actor in radians

### rx

rx: number = 0

The rotational velocity of the actor in radians/second

### torque

torque: number = 0

The current torque applied to the actor

### vel

vel: Vector = new Vector(0, 0)

The current velocity vector (vx, vy) of the actor in pixels/second

## Methods

• Add minimum translation vectors accumulated during the current frame to resolve collisions.

### applyMtv

• applyMtv(): void
• Applies the accumulated translation vectors to the actors position

### debugDraw

• debugDraw(ctx: CanvasRenderingContext2D): void

### touching

• touching(other: Actor): boolean
• Returns a boolean indicating whether this body collided with or was in stationary contact with the body of the other Actor

### update

• update(): void
• Updates the collision area geometry and internal caches

### useBoxCollision

• useBoxCollision(center?: Vector): void
• Sets up a box collision area based on the current bounds of the associated actor of this physics body.

By default, the box is center is at (0, 0) which means it is centered around the actors anchor.

### useCircleCollision

• useCircleCollision(radius?: number, center?: Vector): void
• Sets up a circle collision area with a specified radius in pixels.

By default, the box is center is at (0, 0) which means it is centered around the actors anchor.

### useEdgeCollision

• Sets up an edge collision with a start point and an end point relative to the anchor of the associated actor of this physics body.

By default, the box is center is at (0, 0) which means it is centered around the actors anchor.

### usePolygonCollision

• usePolygonCollision(points: Vector[], center?: Vector): void
• Sets up a polygon collision area based on a list of of points relative to the anchor of the associated actor of this physics body.

Only convex polygon definitions are supported.

By default, the box is center is at (0, 0) which means it is centered around the actors anchor.