These archived docs are for Phaser 2.2.2 Phaser 3 docs can be found on newdocs.phaser.io.
Phaser CE docs can be found on the Phaser CE Documentation site.

## Phaser. Point

#### new Point(x, y)

A Point object represents a location in a two-dimensional coordinate system, where x represents the horizontal axis and y represents the vertical axis. The following code creates a point at (0,0): `var myPoint = new Phaser.Point();` You can also use them as 2D Vectors and you'll find different vector related methods in this class.

##### Parameters
Name Type Argument Default Description
`x` number <optional>
0

The horizontal position of this Point.

`y` number <optional>
0

The vertical position of this Point.

Source code: geom/Point.js, line 18

### Public Properties

#### x : number

The x value of the point.

Source code: geom/Point.js, line 26

#### y : number

The y value of the point.

Source code: geom/Point.js, line 31

### Public Methods

#### <static> add(a, b, out) → {Phaser.Point}

Adds the coordinates of two points together to create a new point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 485

#### <static> angle(a, b) → {number}

Returns the angle between two Point objects.

##### Parameters
Name Type Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

##### Returns
number -

The angle between the two Points.

Source code: geom/Point.js, line 579

#### <static> centroid(points, out) → {Phaser.Point}

Calculates centroid (or midpoint) from an array of points. If only one point is provided, that point is returned.

##### Parameters
Name Type Argument Description
`points` Phaser.Point[]

The array of one or more points.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 815

#### <static> distance(a, b, round) → {number}

Returns the euclidian distance of this Point object to the given object (can be a Circle, Point or anything with x/y properties).

##### Parameters
Name Type Argument Default Description
`a` object

The target object. Must have visible x and y properties that represent the center of the object.

`b` object

The target object. Must have visible x and y properties that represent the center of the object.

`round` boolean <optional>
false

Round the distance to the nearest integer.

##### Returns
number -

The distance between this Point object and the destination Point object.

Source code: geom/Point.js, line 678

#### <static> divide(a, b, out) → {Phaser.Point}

Divides the coordinates of two points to create a new point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 545

#### <static> equals(a, b) → {boolean}

Determines whether the two given Point objects are equal. They are considered equal if they have the same x and y values.

##### Parameters
Name Type Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

##### Returns
boolean -

A value of true if the Points are equal, otherwise false.

Source code: geom/Point.js, line 565

#### <static> interpolate(a, b, f, out) → {Phaser.Point}

Interpolates the two given Points, based on the `f` value (between 0 and 1) and returns a new Point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`f` number

The level of interpolation between the two points. Indicates where the new point will be, along the line between pt1 and pt2. If f=1, pt1 is returned; if f=0, pt2 is returned.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 628

#### <static> multiply(a, b, out) → {Phaser.Point}

Multiplies the coordinates of two points to create a new point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 525

#### <static> multiplyAdd(a, b, s, out) → {Phaser.Point}

Adds two 2D Points together and multiplies the result by the given scalar.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`s` number

The scaling value.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 610

#### <static> negative(a, out) → {Phaser.Point}

Creates a negative Point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 594

#### <static> normalize(a, out) → {Phaser.Point}

Normalize (make unit length) a Point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 758

#### <static> normalRightHand(a, out) → {Phaser.Point}

Right-hand normalize (make unit length) a Point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 742

#### <static> parse(obj, xProp, yProp) → {Phaser.Point}

Parses an object for x and/or y properties and returns a new Phaser.Point with matching values. If the object doesn't contain those properties a Point with x/y of zero will be returned.

##### Parameters
Name Type Argument Default Description
`obj` object

The object to parse.

`xProp` string <optional>
'x'

The property used to set the Point.x value.

`yProp` string <optional>
'y'

The property used to set the Point.y value.

##### Returns

The new Point object.

Source code: geom/Point.js, line 856

#### <static> perp(a, out) → {Phaser.Point}

Return a perpendicular vector (90 degrees rotation)

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 646

#### <static> project(a, b, out) → {Phaser.Point}

Project two Points onto another Point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 694

#### <static> projectUnit(a, b, out) → {Phaser.Point}

Project two Points onto a Point of unit length.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 718

#### <static> rotate(a, x, y, angle, asDegrees, distance) → {Phaser.Point}

Rotates a Point around the x/y coordinates given to the desired angle.

##### Parameters
Name Type Argument Default Description
`a` Phaser.Point

The Point object to rotate.

`x` number

The x coordinate of the anchor point

`y` number

The y coordinate of the anchor point

`angle` number

The angle in radians (unless asDegrees is true) to rotate the Point to.

`asDegrees` boolean <optional>
false

Is the given rotation in radians (false) or degrees (true)?

`distance` number <optional>

An optional distance constraint between the Point and the anchor.

##### Returns

The modified point object.

Source code: geom/Point.js, line 781

#### <static> rperp(a, out) → {Phaser.Point}

Return a perpendicular vector (-90 degrees rotation)

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 662

#### <static> subtract(a, b, out) → {Phaser.Point}

Subtracts the coordinates of two points to create a new point.

##### Parameters
Name Type Argument Description
`a` Phaser.Point

The first Point object.

`b` Phaser.Point

The second Point object.

`out` Phaser.Point <optional>

Optional Point to store the value in, if not supplied a new Point object will be created.

##### Returns

The new Point object.

Source code: geom/Point.js, line 505

Adds the given x and y values to this Point.

##### Parameters
Name Type Description
`x` number

The value to add to Point.x.

`y` number

The value to add to Point.y.

##### Returns

This Point object. Useful for chaining method calls.

Source code: geom/Point.js, line 100

#### angle(a, asDegrees) → {number}

Returns the angle between this Point object and another object with public x and y properties.

##### Parameters
Name Type Argument Default Description
`a` Phaser.Point | any

The object to get the angle from this Point to.

`asDegrees` boolean <optional>
false

Is the given angle in radians (false) or degrees (true)?

##### Returns
number -

The angle between the two objects.

Source code: geom/Point.js, line 275

#### ceil() → {Phaser.Point}

Math.ceil() both the x and y properties of this Point.

##### Returns

This Point object.

Source code: geom/Point.js, line 457

#### clamp(min, max) → {Phaser.Point}

Clamps this Point object values to be between the given min and max.

##### Parameters
Name Type Description
`min` number

The minimum value to clamp this Point to.

`max` number

The maximum value to clamp this Point to.

##### Returns

This Point object.

Source code: geom/Point.js, line 194

#### clampX(min, max) → {Phaser.Point}

Clamps the x value of this Point to be between the given min and max.

##### Parameters
Name Type Description
`min` number

The minimum value to clamp this Point to.

`max` number

The maximum value to clamp this Point to.

##### Returns

This Point object.

Source code: geom/Point.js, line 164

#### clampY(min, max) → {Phaser.Point}

Clamps the y value of this Point to be between the given min and max

##### Parameters
Name Type Description
`min` number

The minimum value to clamp this Point to.

`max` number

The maximum value to clamp this Point to.

##### Returns

This Point object.

Source code: geom/Point.js, line 179

#### clone(output) → {Phaser.Point}

Creates a copy of the given Point.

##### Parameters
Name Type Argument Description
`output` Phaser.Point <optional>

Optional Point object. If given the values will be set into this object, otherwise a brand new Point object will be created and returned.

##### Returns

The new Point object.

Source code: geom/Point.js, line 210

#### copyFrom(source) → {Phaser.Point}

Copies the x and y properties from any given object to this Point.

##### Parameters
Name Type Description
`source` any

The object to copy from.

##### Returns

This Point object.

Source code: geom/Point.js, line 37

#### copyTo(dest) → {object}

Copies the x and y properties from this Point to any given object.

##### Parameters
Name Type Description
`dest` any

The object to copy to.

##### Returns
object -

The dest object.

Source code: geom/Point.js, line 232

#### cross(a) → {number}

The cross product of this and another Point object.

##### Parameters
Name Type Description
`a` Phaser.Point

The Point object to get the cross product combined with this Point.

##### Returns
number -

The result.

Source code: geom/Point.js, line 396

#### distance(dest, round) → {number}

Returns the distance of this Point object to the given object (can be a Circle, Point or anything with x/y properties)

##### Parameters
Name Type Argument Description
`dest` object

The target object. Must have visible x and y properties that represent the center of the object.

`round` boolean <optional>

Round the distance to the nearest integer (default false).

##### Returns
number -

The distance between this Point object and the destination Point object.

Source code: geom/Point.js, line 248

#### divide(x, y) → {Phaser.Point}

Divides Point.x and Point.y by the given x and y values.

##### Parameters
Name Type Description
`x` number

The value to divide Point.x by.

`y` number

The value to divide Point.x by.

##### Returns

This Point object. Useful for chaining method calls.

Source code: geom/Point.js, line 148

#### dot(a) → {number}

The dot product of this and another Point object.

##### Parameters
Name Type Description
`a` Phaser.Point

The Point object to get the dot product combined with this Point.

##### Returns
number -

The result.

Source code: geom/Point.js, line 383

#### equals(a) → {boolean}

Determines whether the given objects x/y values are equal to this Point object.

##### Parameters
Name Type Description
`a` Phaser.Point | any

The object to compare with this Point.

##### Returns
boolean -

A value of true if the x and y points are equal, otherwise false.

Source code: geom/Point.js, line 262

#### floor() → {Phaser.Point}

Math.floor() both the x and y properties of this Point.

##### Returns

This Point object.

Source code: geom/Point.js, line 445

#### getMagnitude() → {number}

Calculates the length of the Point object.

##### Returns
number -

The length of the Point.

Source code: geom/Point.js, line 315

#### getMagnitudeSq() → {number}

Calculates the length squared of the Point object.

##### Returns
number -

The length ^ 2 of the Point.

Source code: geom/Point.js, line 327

#### invert() → {Phaser.Point}

Inverts the x and y values of this Point

##### Returns

This Point object.

Source code: geom/Point.js, line 50

#### isZero() → {boolean}

Determine if this point is at 0,0.

##### Returns
boolean -

True if this Point is 0,0, otherwise false.

Source code: geom/Point.js, line 371

#### multiply(x, y) → {Phaser.Point}

Multiplies Point.x and Point.y by the given x and y values. Sometimes known as `Scale`.

##### Parameters
Name Type Description
`x` number

The value to multiply Point.x by.

`y` number

The value to multiply Point.x by.

##### Returns

This Point object. Useful for chaining method calls.

Source code: geom/Point.js, line 132

#### normalize() → {Phaser.Point}

Alters the Point object so that its length is 1, but it retains the same direction.

##### Returns

This Point object.

Source code: geom/Point.js, line 352

#### normalRightHand() → {Phaser.Point}

Right-hand normalize (make unit length) this Point.

##### Returns

This Point object.

Source code: geom/Point.js, line 433

#### perp() → {Phaser.Point}

Make this Point perpendicular (90 degrees rotation)

##### Returns

This Point object.

Source code: geom/Point.js, line 409

#### rotate(x, y, angle, asDegrees, distance) → {Phaser.Point}

Rotates this Point around the x/y coordinates given to the desired angle.

##### Parameters
Name Type Argument Description
`x` number

The x coordinate of the anchor point.

`y` number

The y coordinate of the anchor point.

`angle` number

The angle in radians (unless asDegrees is true) to rotate the Point to.

`asDegrees` boolean

Is the given rotation in radians (false) or degrees (true)?

`distance` number <optional>

An optional distance constraint between the Point and the anchor.

##### Returns

The modified point object.

Source code: geom/Point.js, line 298

#### rperp() → {Phaser.Point}

Make this Point perpendicular (-90 degrees rotation)

##### Returns

This Point object.

Source code: geom/Point.js, line 421

#### set(x, y) → {Phaser.Point}

Sets the `x` and `y` values of this Point object to the given values. If you omit the `y` value then the `x` value will be applied to both, for example: `Point.setTo(2)` is the same as `Point.setTo(2, 2)`

##### Parameters
Name Type Argument Description
`x` number

The horizontal value of this point.

`y` number <optional>

The vertical value of this point. If not given the x value will be used in its place.

##### Returns

This Point object. Useful for chaining method calls.

Source code: geom/Point.js, line 81

#### setMagnitude(magnitude) → {Phaser.Point}

Alters the length of the Point without changing the direction.

##### Parameters
Name Type Description
`magnitude` number

The desired magnitude of the resulting Point.

##### Returns

This Point object.

Source code: geom/Point.js, line 339

#### setTo(x, y) → {Phaser.Point}

Sets the `x` and `y` values of this Point object to the given values. If you omit the `y` value then the `x` value will be applied to both, for example: `Point.setTo(2)` is the same as `Point.setTo(2, 2)`

##### Parameters
Name Type Argument Description
`x` number

The horizontal value of this point.

`y` number <optional>

The vertical value of this point. If not given the x value will be used in its place.

##### Returns

This Point object. Useful for chaining method calls.

Source code: geom/Point.js, line 62

#### subtract(x, y) → {Phaser.Point}

Subtracts the given x and y values from this Point.

##### Parameters
Name Type Description
`x` number

The value to subtract from Point.x.

`y` number

The value to subtract from Point.y.

##### Returns

This Point object. Useful for chaining method calls.

Source code: geom/Point.js, line 116

#### toString() → {string}

Returns a string representation of this object.

##### Returns
string -

A string representation of the instance.

Source code: geom/Point.js, line 469