A representation of a vector in 2D space.

A two-component vector.

**Constructor**

`new Vector2([x], [y])`

**Parameters**

name | type | optional | default | description |
---|---|---|---|---|

x | number | Phaser.Types.Math.Vector2Like | Yes | 0 | The x component, or an object with |

y | number | Yes | "x" | The y component. |

**Scope**: static

Source: src/math/Vector2.js#L13

Since: 3.0.0

# Public Members

## x

### x: number

**Description:**

The x component of this Vector.

Source: src/math/Vector2.js#L33

Since: 3.0.0

## y

### y: number

**Description:**

The y component of this Vector.

Source: src/math/Vector2.js#L43

Since: 3.0.0

# Public Methods

## add

### <instance> add(src)

**Description:**

Add a given Vector to this Vector. Addition is component-wise.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to add to this Vector. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L244

Since: 3.0.0

## angle

### <instance> angle()

**Description:**

Calculate the angle between this Vector and the positive x-axis, in radians.

**Returns:** number - The angle between this Vector, and the positive x-axis, given in radians.

Source: src/math/Vector2.js#L207

Since: 3.0.0

## clone

### <instance> clone()

**Description:**

Make a clone of this Vector2.

**Returns:** Phaser.Math.Vector2 - A clone of this Vector2.

Source: src/math/Vector2.js#L67

Since: 3.0.0

## copy

### <instance> copy(src)

**Description:**

Copy the components of a given Vector into this Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to copy the components from. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L80

Since: 3.0.0

## cross

### <instance> cross(src)

**Description:**

Calculate the cross product of this Vector and the given Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector2 to cross with this Vector2. |

**Returns:** number - The cross product of this Vector and the given Vector.

Source: src/math/Vector2.js#L523

Since: 3.0.0

## distance

### <instance> distance(src)

**Description:**

Calculate the distance between this Vector and the given Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to calculate the distance to. |

**Returns:** number - The distance from this Vector to the given Vector.

Source: src/math/Vector2.js#L362

Since: 3.0.0

## distanceSq

### <instance> distanceSq(src)

**Description:**

Calculate the distance between this Vector and the given Vector, squared.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to calculate the distance to. |

**Returns:** number - The distance from this Vector to the given Vector, squared.

Source: src/math/Vector2.js#L380

Since: 3.0.0

## divide

### <instance> divide(src)

**Description:**

Perform a component-wise division between this Vector and the given Vector.

Divides this Vector by the given Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to divide this Vector by. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L326

Since: 3.0.0

## dot

### <instance> dot(src)

**Description:**

Calculate the dot product of this Vector and the given Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector2 to dot product with this Vector2. |

**Returns:** number - The dot product of this Vector and the given Vector.

Source: src/math/Vector2.js#L508

Since: 3.0.0

## equals

### <instance> equals(v)

**Description:**

Check whether this Vector is equal to a given Vector.

Performs a strict equality check against each Vector's components.

**Parameters:**

name | type | optional | description |
---|---|---|---|

v | No | The vector to compare with this Vector. |

**Returns:** boolean - Whether the given Vector is equal to this Vector.

Source: src/math/Vector2.js#L174

Since: 3.0.0

## fuzzyEquals

### <instance> fuzzyEquals(v, [epsilon])

**Description:**

Check whether this Vector is approximately equal to a given Vector.

**Parameters:**

name | type | optional | default | description |
---|---|---|---|---|

v | No | The vector to compare with this Vector. | ||

epsilon | number | Yes | 0.0001 | The tolerance value. |

**Returns:** boolean - Whether both absolute differences of the x and y components are smaller than `epsilon`

.

Source: src/math/Vector2.js#L191

Since: 3.23.0

## length

### <instance> length()

**Description:**

Calculate the length (or magnitude) of this Vector.

**Returns:** number - The length of this Vector.

Source: src/math/Vector2.js#L398

Since: 3.0.0

## lengthSq

### <instance> lengthSq()

**Description:**

Calculate the length of this Vector squared.

**Returns:** number - The length of this Vector, squared.

Source: src/math/Vector2.js#L429

Since: 3.0.0

## lerp

### <instance> lerp(src, [t])

**Description:**

Linearly interpolate between this Vector and the given Vector.

Interpolates this Vector towards the given Vector.

**Parameters:**

name | type | optional | default | description |
---|---|---|---|---|

src | No | The Vector2 to interpolate towards. | ||

t | number | Yes | 0 | The interpolation percentage, between 0 and 1. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L538

Since: 3.0.0

## limit

### <instance> limit(max)

**Description:**

Limit the length (or magnitude) of this Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

max | number | No | The maximum length. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L624

Since: 3.23.0

## mirror

### <instance> mirror(axis)

**Description:**

Reflect this Vector across another.

**Parameters:**

name | type | optional | description |
---|---|---|---|

axis | No | A vector to reflect across. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L663

Since: 3.23.0

## multiply

### <instance> multiply(src)

**Description:**

Perform a component-wise multiplication between this Vector and the given Vector.

Multiplies this Vector by the given Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to multiply this Vector by. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L280

Since: 3.0.0

## negate

### <instance> negate()

**Description:**

Negate the `x`

and `y`

components of this Vector.

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L346

Since: 3.0.0

## normalize

### <instance> normalize()

**Description:**

Normalize this Vector.

Makes the vector a unit length vector (magnitude of 1) in the same direction.

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L445

Since: 3.0.0

## normalizeLeftHand

### <instance> normalizeLeftHand()

**Description:**

Rotate this Vector to its perpendicular, in the negative direction.

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L490

Since: 3.23.0

## normalizeRightHand

### <instance> normalizeRightHand()

**Description:**

Rotate this Vector to its perpendicular, in the positive direction.

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L472

Since: 3.0.0

## project

### <instance> project(src)

**Description:**

Project this Vector onto another.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The vector to project onto. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L696

Since: 3.60.0

## reflect

### <instance> reflect(normal)

**Description:**

Reflect this Vector off a line defined by a normal.

**Parameters:**

name | type | optional | description |
---|---|---|---|

normal | No | A vector perpendicular to the line. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L646

Since: 3.23.0

## reset

### <instance> reset()

**Description:**

Make this Vector the zero vector (0, 0).

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L608

Since: 3.0.0

## rotate

### <instance> rotate(delta)

**Description:**

Rotate this Vector by an angle amount.

**Parameters:**

name | type | optional | description |
---|---|---|---|

delta | number | No | The angle to rotate by, in radians. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L678

Since: 3.23.0

## scale

### <instance> scale(value)

**Description:**

Scale this Vector by the given value.

**Parameters:**

name | type | optional | description |
---|---|---|---|

value | number | No | The value to scale this Vector by. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L300

Since: 3.0.0

## set

### <instance> set(x, [y])

**Description:**

Set the `x`

and `y`

components of the this Vector to the given `x`

and `y`

values.

**Parameters:**

name | type | optional | default | description |
---|---|---|---|---|

x | number | No | The x value to set for this Vector. | |

y | number | Yes | "x" | The y value to set for this Vector. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L116

Since: 3.0.0

## setAngle

### <instance> setAngle(angle)

**Description:**

Set the angle of this Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

angle | number | No | The angle, in radians. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L229

Since: 3.23.0

## setFromObject

### <instance> setFromObject(obj)

**Description:**

Set the component values of this Vector from a given Vector2Like object.

**Parameters:**

name | type | optional | description |
---|---|---|---|

obj | No | The object containing the component values to set for this Vector. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L98

Since: 3.0.0

## setLength

### <instance> setLength(length)

**Description:**

Set the length (or magnitude) of this Vector.

**Parameters:**

name | type | optional | description |
---|---|---|---|

length | number | No | No description provided |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L414

Since: 3.23.0

## setTo

### <instance> setTo(x, [y])

**Description:**

This method is an alias for `Vector2.set`

.

**Parameters:**

name | type | optional | default | description |
---|---|---|---|---|

x | number | No | The x value to set for this Vector. | |

y | number | Yes | "x" | The y value to set for this Vector. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L137

Since: 3.4.0

## setToPolar

### <instance> setToPolar(azimuth, [radius])

**Description:**

Sets the `x`

and `y`

values of this object from a given polar coordinate.

**Parameters:**

name | type | optional | default | description |
---|---|---|---|---|

azimuth | number | No | The angular coordinate, in radians. | |

radius | number | Yes | 1 | The radial coordinate (length). |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L153

Since: 3.0.0

## subtract

### <instance> subtract(src)

**Description:**

Subtract the given Vector from this Vector. Subtraction is component-wise.

**Parameters:**

name | type | optional | description |
---|---|---|---|

src | No | The Vector to subtract from this Vector. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L262

Since: 3.0.0

## transformMat3

### <instance> transformMat3(mat)

**Description:**

Transform this Vector with the given Matrix.

**Parameters:**

name | type | optional | description |
---|---|---|---|

mat | No | The Matrix3 to transform this Vector2 with. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L564

Since: 3.0.0

## transformMat4

### <instance> transformMat4(mat)

**Description:**

Transform this Vector with the given Matrix.

**Parameters:**

name | type | optional | description |
---|---|---|---|

mat | No | The Matrix4 to transform this Vector2 with. |

**Returns:** Phaser.Math.Vector2 - This Vector2.

Source: src/math/Vector2.js#L586

Since: 3.0.0

# Constants:

# Public Members

## DOWN

### DOWN: Phaser.Math.Vector2

**Description:**

A static down Vector2 for use by reference.

This constant is meant for comparison operations and should not be modified directly.

Source: src/math/Vector2.js#L763

Since: 3.16.0

## LEFT

### LEFT: Phaser.Math.Vector2

**Description:**

A static left Vector2 for use by reference.

This constant is meant for comparison operations and should not be modified directly.

Source: src/math/Vector2.js#L739

Since: 3.16.0

## ONE

### ONE: Phaser.Math.Vector2

**Description:**

A static one Vector2 for use by reference.

This constant is meant for comparison operations and should not be modified directly.

Source: src/math/Vector2.js#L775

Since: 3.16.0

## RIGHT

### RIGHT: Phaser.Math.Vector2

**Description:**

A static right Vector2 for use by reference.

This constant is meant for comparison operations and should not be modified directly.

Source: src/math/Vector2.js#L727

Since: 3.16.0

## UP

### UP: Phaser.Math.Vector2

**Description:**

A static up Vector2 for use by reference.

This constant is meant for comparison operations and should not be modified directly.

Source: src/math/Vector2.js#L751

Since: 3.16.0

## ZERO

### ZERO: Phaser.Math.Vector2

**Description:**

A static zero Vector2 for use by reference.

This constant is meant for comparison operations and should not be modified directly.

Source: src/math/Vector2.js#L715

Since: 3.1.0