- Source: src/math/index.js (Line 10)
Classes
Namespaces
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
andmax
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 tobase
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 tobase
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
andmax
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 betweenmin
andmax
.- 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 avalue
, limiting the maximum result tomax
.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
fromvalue
, limiting the minimum result tomin
.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 betweenmin
andmax
. Ifmax
isn't given then it will return the percentage ofvalue
tomin
.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
aroundx
andy
to the givenangle
, 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.
-
<static> RotateAroundDistance(point, x, y, angle, distance)
-
Rotate a
point
aroundx
andy
by the givenangle
anddistance
.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.
-
<static> RotateTo(point, x, y, angle, distance)
-
Position a
point
at the givenangle
anddistance
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.
-
<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.
-
<static> SmootherStep(x, min, max)
-
Calculate a smoother interpolation percentage of
x
betweenmin
andmax
.The function receives the number
x
as an argument and returns 0 ifx
is less than or equal to the left edge, 1 ifx
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
betweenmin
andmax
.The function receives the number
x
as an argument and returns 0 ifx
is less than or equal to the left edge, 1 ifx
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
xheight
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
andy
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
ifa
is less than or equal to the tolerance ofb
.- Type
- boolean
-
<static> Wrap(value, min, max)
-
Wrap the given
value
betweenmin
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