Namespace: Math

Phaser. Math

Classes

Euler
Matrix3
Matrix4
Quaternion
RandomDataGenerator
Vector2
Vector3
Vector4

Namespaces

Angle
Distance
Easing
Fuzzy
Interpolation
Pow2
Snap

Members


<static> DEG_TO_RAD :number

For converting degrees to radians (PI / 180)

Type:
  • number
Since: 3.0.0
Source: src/math/const.js (Line 36)

<static> EPSILON :number

An epsilon value (1.0e-6)

Type:
  • number
Since: 3.0.0
Source: src/math/const.js (Line 27)

<static> MAX_SAFE_INTEGER :number

The maximum safe integer this browser supports. We use a const for backward compatibility with Internet Explorer.

Type:
  • number
Since: 3.21.0
Source: src/math/const.js (Line 74)

<static> MIN_SAFE_INTEGER :number

The minimum safe integer this browser supports. We use a const for backward compatibility with Internet Explorer.

Type:
  • number
Since: 3.21.0
Source: src/math/const.js (Line 64)

<static> PI2 :number

The value of PI * 2.

Type:
  • number
Since: 3.0.0
Source: src/math/const.js (Line 9)

<static> RAD_TO_DEG :number

For converting radians to degrees (180 / PI)

Type:
  • number
Since: 3.0.0
Source: src/math/const.js (Line 45)

<static> RND :Phaser.Math.RandomDataGenerator

An instance of the Random Number Generator. This is not set until the Game boots.

Type:
Since: 3.0.0
Source: src/math/const.js (Line 54)

<static> TAU :number

The value of PI * 0.5.

Type:
  • number
Since: 3.0.0
Source: src/math/const.js (Line 18)

Methods


<static> Average(values)

Calculate the mean average of the given values.

Parameters:
Name Type Description
values Array.<number>

The values to average.

Since: 3.0.0
Source: src/math/Average.js (Line 7)
Returns:

The average value.

Type
number

<static> Bernstein(n, i)

Calculates the Bernstein basis from the three factorial coefficients.

Parameters:
Name Type Description
n number

The first value.

i number

The second value.

Since: 3.0.0
Source: src/math/Bernstein.js (Line 9)
Returns:

The Bernstein basis of Factorial(n) / Factorial(i) / Factorial(n - i)

Type
number

<static> Between(min, max)

Compute a random integer between the min and max values, inclusive.

Parameters:
Name Type Description
min number

The minimum value.

max number

The maximum value.

Since: 3.0.0
Source: src/math/Between.js (Line 7)
Returns:

The random integer.

Type
number

<static> CatmullRom(t, p0, p1, p2, p3)

Calculates a Catmull-Rom value from the given points, based on an alpha of 0.5.

Parameters:
Name Type Description
t number

The amount to interpolate by.

p0 number

The first control point.

p1 number

The second control point.

p2 number

The third control point.

p3 number

The fourth control point.

Since: 3.0.0
Source: src/math/CatmullRom.js (Line 7)
Returns:

The Catmull-Rom value.

Type
number

<static> CeilTo(value [, place] [, base])

Ceils to some place comparative to a base, default is 10 for decimal place.

The place is represented by the power applied to base to get that place.

Parameters:
Name Type Argument Default Description
value number

The value to round.

place number <optional>
0

The place to round to.

base number <optional>
10

The base to round in. Default is 10 for decimal.

Since: 3.0.0
Source: src/math/CeilTo.js (Line 7)
Returns:

The rounded value.

Type
number

<static> Clamp(value, min, max)

Force a value within the boundaries by clamping it to the range min, max.

Parameters:
Name Type Description
value number

The value to be clamped.

min number

The minimum bounds.

max number

The maximum bounds.

Since: 3.0.0
Source: src/math/Clamp.js (Line 7)
Returns:

The clamped value.

Type
number

<static> DegToRad(degrees)

Convert the given angle from degrees, to the equivalent angle in radians.

Parameters:
Name Type Description
degrees number

The angle (in degrees) to convert to radians.

Since: 3.0.0
Source: src/math/DegToRad.js (Line 9)
Returns:

The given angle converted to radians.

Type
number

<static> Difference(a, b)

Calculates the positive difference of two given numbers.

Parameters:
Name Type Description
a number

The first number in the calculation.

b number

The second number in the calculation.

Since: 3.0.0
Source: src/math/Difference.js (Line 7)
Returns:

The positive difference of the two given numbers.

Type
number

<static> Factorial(value)

Calculates the factorial of a given number for integer values greater than 0.

Parameters:
Name Type Description
value number

A positive integer to calculate the factorial of.

Since: 3.0.0
Source: src/math/Factorial.js (Line 7)
Returns:

The factorial of the given number.

Type
number

<static> FloatBetween(min, max)

Generate a random floating point number between the two given bounds, minimum inclusive, maximum exclusive.

Parameters:
Name Type Description
min number

The lower bound for the float, inclusive.

max number

The upper bound for the float exclusive.

Since: 3.0.0
Source: src/math/FloatBetween.js (Line 7)
Returns:

A random float within the given range.

Type
number

<static> FloorTo(value [, place] [, base])

Floors to some place comparative to a base, default is 10 for decimal place.

The place is represented by the power applied to base to get that place.

Parameters:
Name Type Argument Default Description
value number

The value to round.

place number <optional>
0

The place to round to.

base number <optional>
10

The base to round in. Default is 10 for decimal.

Since: 3.0.0
Source: src/math/FloorTo.js (Line 7)
Returns:

The rounded value.

Type
number

<static> FromPercent(percent, min [, max])

Return a value based on the range between min and max and the percentage given.

Parameters:
Name Type Argument Description
percent number

A value between 0 and 1 representing the percentage.

min number

The minimum value.

max number <optional>

The maximum value.

Since: 3.0.0
Source: src/math/FromPercent.js (Line 9)
Returns:

The value that is percent percent between min and max.

Type
number

<static> GetSpeed(distance, time)

Calculate a per-ms speed from a distance and time (given in seconds).

Parameters:
Name Type Description
distance number

The distance.

time number

The time, in seconds.

Since: 3.0.0
Source: src/math/GetSpeed.js (Line 7)
Returns:

The speed, in distance per ms.

Type
number
Example
// 400px over 1 second is 0.4 px/ms
Phaser.Math.GetSpeed(400, 1) // -> 0.4

<static> IsEven(value)

Check if a given value is an even number.

Parameters:
Name Type Description
value number

The number to perform the check with.

Since: 3.0.0
Source: src/math/IsEven.js (Line 7)
Returns:

Whether the number is even or not.

Type
boolean

<static> IsEvenStrict(value)

Check if a given value is an even number using a strict type check.

Parameters:
Name Type Description
value number

The number to perform the check with.

Since: 3.0.0
Source: src/math/IsEvenStrict.js (Line 7)
Returns:

Whether the number is even or not.

Type
boolean

<static> Linear(p0, p1, t)

Calculates a linear (interpolation) value over t.

Parameters:
Name Type Description
p0 number

The first point.

p1 number

The second point.

t number

The percentage between p0 and p1 to return, represented as a number between 0 and 1.

Since: 3.0.0
Source: src/math/Linear.js (Line 7)
Returns:

The step t% of the way between p0 and p1.

Type
number

<static> MaxAdd(value, amount, max)

Add an amount to a value, limiting the maximum result to max.

Parameters:
Name Type Description
value number

The value to add to.

amount number

The amount to add.

max number

The maximum value to return.

Since: 3.0.0
Source: src/math/MaxAdd.js (Line 7)
Returns:

The resulting value.

Type
number

<static> MinSub(value, amount, min)

Subtract an amount from value, limiting the minimum result to min.

Parameters:
Name Type Description
value number

The value to subtract from.

amount number

The amount to subtract.

min number

The minimum value to return.

Since: 3.0.0
Source: src/math/MinSub.js (Line 7)
Returns:

The resulting value.

Type
number

<static> Percent(value, min [, max] [, upperMax])

Work out what percentage value is of the range between min and max. If max isn't given then it will return the percentage of value to min.

You can optionally specify an upperMax value, which is a mid-way point in the range that represents 100%, after which the % starts to go down to zero again.

Parameters:
Name Type Argument Description
value number

The value to determine the percentage of.

min number

The minimum value.

max number <optional>

The maximum value.

upperMax number <optional>

The mid-way point in the range that represents 100%.

Since: 3.0.0
Source: src/math/Percent.js (Line 7)
Returns:

A value between 0 and 1 representing the percentage.

Type
number

<static> RadToDeg(radians)

Convert the given angle in radians, to the equivalent angle in degrees.

Parameters:
Name Type Description
radians number

The angle in radians to convert ot degrees.

Since: 3.0.0
Source: src/math/RadToDeg.js (Line 9)
Returns:

The given angle converted to degrees.

Type
number

<static> RandomXY(vector [, scale])

Compute a random unit vector.

Computes random values for the given vector between -1 and 1 that can be used to represent a direction.

Optionally accepts a scale value to scale the resulting vector by.

Parameters:
Name Type Argument Default Description
vector Phaser.Math.Vector2

The Vector to compute random values for.

scale number <optional>
1

The scale of the random values.

Since: 3.0.0
Source: src/math/RandomXY.js (Line 7)
Returns:

The given Vector.

Type
Phaser.Math.Vector2

<static> RandomXYZ(vec3 [, radius])

Compute a random position vector in a spherical area, optionally defined by the given radius.

Parameters:
Name Type Argument Default Description
vec3 Phaser.Math.Vector3

The Vector to compute random values for.

radius number <optional>
1

The radius.

Since: 3.0.0
Source: src/math/RandomXYZ.js (Line 7)
Returns:

The given Vector.

Type
Phaser.Math.Vector3

<static> RandomXYZW(vec4 [, scale])

Compute a random four-dimensional vector.

Parameters:
Name Type Argument Default Description
vec4 Phaser.Math.Vector4

The Vector to compute random values for.

scale number <optional>
1

The scale of the random values.

Since: 3.0.0
Source: src/math/RandomXYZW.js (Line 7)
Returns:

The given Vector.

Type
Phaser.Math.Vector4

<static> Rotate(point, angle)

Rotate a given point by a given angle around the origin (0, 0), in an anti-clockwise direction.

Parameters:
Name Type Description
point Phaser.Geom.Point | object

The point to be rotated.

angle number

The angle to be rotated by in an anticlockwise direction.

Since: 3.0.0
Source: src/math/Rotate.js (Line 7)
Returns:

The given point, rotated by the given angle in an anticlockwise direction.

Type
Phaser.Geom.Point

<static> RotateAround(point, x, y, angle)

Rotate a point around x and y to the given angle, at the same distance.

In polar notation, this maps a point from (r, t) to (r, angle), vs. the origin (x, y).

Parameters:
Name Type Description
point Phaser.Geom.Point | object

The point to be rotated.

x number

The horizontal coordinate to rotate around.

y number

The vertical coordinate to rotate around.

angle number

The angle of rotation in radians.

Since: 3.0.0
Source: src/math/RotateAround.js (Line 7)
Returns:

The given point.

Type
Phaser.Types.Math.Vector2Like

<static> RotateAroundDistance(point, x, y, angle, distance)

Rotate a point around x and y by the given angle and distance.

In polar notation, this maps a point from (r, t) to (distance, t + angle), vs. the origin (x, y).

Parameters:
Name Type Description
point Phaser.Geom.Point | object

The point to be rotated.

x number

The horizontal coordinate to rotate around.

y number

The vertical coordinate to rotate around.

angle number

The angle of rotation in radians.

distance number

The distance from (x, y) to place the point at.

Since: 3.0.0
Source: src/math/RotateAroundDistance.js (Line 7)
Returns:

The given point.

Type
Phaser.Types.Math.Vector2Like

<static> RotateTo(point, x, y, angle, distance)

Position a point at the given angle and distance to (x, y).

Parameters:
Name Type Description
point Phaser.Types.Math.Vector2Like

The point to be positioned.

x number

The horizontal coordinate to position from.

y number

The vertical coordinate to position from.

angle number

The angle of rotation in radians.

distance number

The distance from (x, y) to place the point at.

Since: 3.24.0
Source: src/math/RotateTo.js (Line 7)
Returns:

The given point.

Type
Phaser.Types.Math.Vector2Like

<static> RotateVec3(vec, axis, radians)

Rotates a vector in place by axis angle.

This is the same as transforming a point by an axis-angle quaternion, but it has higher precision.

Parameters:
Name Type Description
vec Phaser.Math.Vector3

The vector to be rotated.

axis Phaser.Math.Vector3

The axis to rotate around.

radians number

The angle of rotation in radians.

Since: 3.0.0
Source: src/math/RotateVec3.js (Line 15)
Returns:

The given vector.

Type
Phaser.Math.Vector3

<static> RoundAwayFromZero(value)

Round a given number so it is further away from zero. That is, positive numbers are rounded up, and negative numbers are rounded down.

Parameters:
Name Type Description
value number

The number to round.

Since: 3.0.0
Source: src/math/RoundAwayFromZero.js (Line 7)
Returns:

The rounded number, rounded away from zero.

Type
number

<static> RoundTo(value [, place] [, base])

Round a value to the given precision.

For example:

RoundTo(123.456, 0) = 123
RoundTo(123.456, 1) = 120
RoundTo(123.456, 2) = 100

To round the decimal, i.e. to round to precision, pass in a negative place:

RoundTo(123.456789, 0) = 123
RoundTo(123.456789, -1) = 123.5
RoundTo(123.456789, -2) = 123.46
RoundTo(123.456789, -3) = 123.457
Parameters:
Name Type Argument Default Description
value number

The value to round.

place number <optional>
0

The place to round to. Positive to round the units, negative to round the decimal.

base number <optional>
10

The base to round in. Default is 10 for decimal.

Since: 3.0.0
Source: src/math/RoundTo.js (Line 7)
Returns:

The rounded value.

Type
number

<static> SinCosTableGenerator(length [, sinAmp] [, cosAmp] [, frequency])

Generate a series of sine and cosine values.

Parameters:
Name Type Argument Default Description
length number

The number of values to generate.

sinAmp number <optional>
1

The sine value amplitude.

cosAmp number <optional>
1

The cosine value amplitude.

frequency number <optional>
1

The frequency of the values.

Since: 3.0.0
Source: src/math/SinCosTableGenerator.js (Line 7)
Returns:

The generated values.

Type
Phaser.Types.Math.SinCosTable

<static> SmootherStep(x, min, max)

Calculate a smoother interpolation percentage of x between min and max.

The function receives the number x as an argument and returns 0 if x is less than or equal to the left edge, 1 if x is greater than or equal to the right edge, and smoothly interpolates, using a Hermite polynomial, between 0 and 1 otherwise.

Produces an even smoother interpolation than Phaser.Math.SmoothStep.

Parameters:
Name Type Description
x number

The input value.

min number

The minimum value, also known as the 'left edge', assumed smaller than the 'right edge'.

max number

The maximum value, also known as the 'right edge', assumed greater than the 'left edge'.

Since: 3.0.0
Source: src/math/SmootherStep.js (Line 7)
See:
Returns:

The percentage of interpolation, between 0 and 1.

Type
number

<static> SmoothStep(x, min, max)

Calculate a smooth interpolation percentage of x between min and max.

The function receives the number x as an argument and returns 0 if x is less than or equal to the left edge, 1 if x is greater than or equal to the right edge, and smoothly interpolates, using a Hermite polynomial, between 0 and 1 otherwise.

Parameters:
Name Type Description
x number

The input value.

min number

The minimum value, also known as the 'left edge', assumed smaller than the 'right edge'.

max number

The maximum value, also known as the 'right edge', assumed greater than the 'left edge'.

Since: 3.0.0
Source: src/math/SmoothStep.js (Line 7)
See:
Returns:

The percentage of interpolation, between 0 and 1.

Type
number

<static> ToXY(index, width, height [, out])

Returns a Vector2 containing the x and y position of the given index in a width x height sized grid.

For example, in a 6 x 4 grid, index 16 would equal x: 4 y: 2.

If the given index is out of range an empty Vector2 is returned.

Parameters:
Name Type Argument Description
index number

The position within the grid to get the x/y value for.

width number

The width of the grid.

height number

The height of the grid.

out Phaser.Math.Vector2 <optional>

An optional Vector2 to store the result in. If not given, a new Vector2 instance will be created.

Since: 3.19.0
Source: src/math/ToXY.js (Line 9)
Returns:

A Vector2 where the x and y properties contain the given grid index.

Type
Phaser.Math.Vector2

<static> TransformXY(x, y, positionX, positionY, rotation, scaleX, scaleY [, output])

Takes the x and y coordinates and transforms them into the same space as defined by the position, rotation and scale values.

Parameters:
Name Type Argument Description
x number

The x coordinate to be transformed.

y number

The y coordinate to be transformed.

positionX number

Horizontal position of the transform point.

positionY number

Vertical position of the transform point.

rotation number

Rotation of the transform point, in radians.

scaleX number

Horizontal scale of the transform point.

scaleY number

Vertical scale of the transform point.

output Phaser.Math.Vector2 | Phaser.Geom.Point | object <optional>

The output vector, point or object for the translated coordinates.

Since: 3.0.0
Source: src/math/TransformXY.js (Line 9)
Returns:

The translated point.

Type
Phaser.Math.Vector2 | Phaser.Geom.Point | object

<static> Within(a, b, tolerance)

Checks if the two values are within the given tolerance of each other.

Parameters:
Name Type Description
a number

The first value to use in the calculation.

b number

The second value to use in the calculation.

tolerance number

The tolerance. Anything equal to or less than this value is considered as being within range.

Since: 3.0.0
Source: src/math/Within.js (Line 7)
Returns:

Returns true if a is less than or equal to the tolerance of b.

Type
boolean

<static> Wrap(value, min, max)

Wrap the given value between min and `max.

Parameters:
Name Type Description
value number

The value to wrap.

min number

The minimum value.

max number

The maximum value.

Since: 3.0.0
Source: src/math/Wrap.js (Line 7)
Returns:

The wrapped value.

Type
number