Utilities

LittleJS Utility Classes and Functions

  • General purpose math library
  • Vector2 - fast, simple, easy 2D vector class
  • Color - holds a rgba color with some math functions
  • Timer - tracks time automatically
  • RandomGenerator - seeded random number generator

Members

(static, constant) BLACK :Color

Color - Black #000000

Type:

(static, constant) BLUE :Color

Color - Blue #0000ff

Type:

(static, constant) CYAN :Color

Color - Cyan #00ffff

Type:

(static, constant) GRAY :Color

Color - Gray #808080

Type:

(static, constant) GREEN :Color

Color - Green #00ff00

Type:

(static, constant) MAGENTA :Color

Color - Magenta #ff00ff

Type:

(static, constant) ORANGE :Color

Color - Orange #ff8000

Type:

(static, constant) PI :number

A shortcut to get Math.PI

Type:
  • number
Default Value
  • Math.PI

(static, constant) PURPLE :Color

Color - Purple #8000ff

Type:

(static, constant) RED :Color

Color - Red #ff0000

Type:

(static, constant) WHITE :Color

Color - White #ffffff

Type:

(static, constant) YELLOW :Color

Color - Yellow #ffff00

Type:

Methods

(static) abs(value) → {number}

Returns absolute value of value passed in

Parameters:
NameTypeDescription
valuenumber
Returns:
Type: 
number

(static) clamp(value, minopt, maxopt) → {number}

Clamps the value between max and min

Parameters:
NameTypeAttributesDefaultDescription
valuenumber
minnumber<optional>
0
maxnumber<optional>
1
Returns:
Type: 
number

(static) distanceAngle(angleA, angleB) → {number}

Returns signed wrapped distance between the two angles passed in

Parameters:
NameTypeDescription
angleAnumber
angleBnumber
Returns:
Type: 
number

(static) distanceWrap(valueA, valueB, wrapSizeopt) → {number}

Returns signed wrapped distance between the two values passed in

Parameters:
NameTypeAttributesDefaultDescription
valueAnumber
valueBnumber
wrapSizenumber<optional>
1
Returns:
Type: 
number

(static) formatTime(t) → {string}

Formats seconds to mm:ss style for display purposes

Parameters:
NameTypeDescription
tnumber

time in seconds

Returns:
Type: 
string

(static) hsl(hopt, sopt, lopt, aopt) → {Color}

Create a color object with HSLA values, white by default

Parameters:
NameTypeAttributesDefaultDescription
hnumber<optional>
0

hue

snumber<optional>
0

saturation

lnumber<optional>
1

lightness

anumber<optional>
1

alpha

Returns:
Type: 
Color

(static) isColor(c) → {boolean}

Check if object is a valid Color

Parameters:
NameTypeDescription
cany
Returns:
Type: 
boolean

(static) isIntersecting(start, end, pos, size) → {boolean}

Returns true if a line segment is intersecting an axis aligned box

Parameters:
NameTypeDescription
startVector2

Start of raycast

endVector2

End of raycast

posVector2

Center of box

sizeVector2

Size of box

Returns:
  • True if intersecting
Type: 
boolean

(static) isOverlapping(posA, sizeA, posB, sizeBopt) → {boolean}

Returns true if two axis aligned bounding boxes are overlapping

Parameters:
NameTypeAttributesDefaultDescription
posAVector2

Center of box A

sizeAVector2

Size of box A

posBVector2

Center of box B

sizeBVector2<optional>
(0,0)

Size of box B, a point if undefined

Returns:
  • True if overlapping
Type: 
boolean

(static) isVector2(v) → {boolean}

Check if object is a valid Vector2

Parameters:
NameTypeDescription
vany
Returns:
Type: 
boolean

(static) lerp(percent, valueA, valueB) → {number}

Linearly interpolates between values passed in using percent

Parameters:
NameTypeDescription
percentnumber
valueAnumber
valueBnumber
Returns:
Type: 
number

(static) lerpAngle(percent, angleA, angleB) → {number}

Linearly interpolates between the angles passed in with wrapping

Parameters:
NameTypeDescription
percentnumber
angleAnumber
angleBnumber
Returns:
Type: 
number

(static) lerpWrap(percent, valueA, valueB, wrapSizeopt) → {number}

Linearly interpolates between values passed in with wrapping

Parameters:
NameTypeAttributesDefaultDescription
percentnumber
valueAnumber
valueBnumber
wrapSizenumber<optional>
1
Returns:
Type: 
number

(static) max(valueA, valueB) → {number}

Returns highest of two values passed in

Parameters:
NameTypeDescription
valueAnumber
valueBnumber
Returns:
Type: 
number

(static) min(valueA, valueB) → {number}

Returns lowest of two values passed in

Parameters:
NameTypeDescription
valueAnumber
valueBnumber
Returns:
Type: 
number

(static) mod(dividend, divisoropt) → {number}

Returns first parm modulo the second param, but adjusted so negative numbers work as expected

Parameters:
NameTypeAttributesDefaultDescription
dividendnumber
divisornumber<optional>
1
Returns:
Type: 
number

(static) nearestPowerOfTwo(value) → {number}

Returns the nearest power of two not less then the value

Parameters:
NameTypeDescription
valuenumber
Returns:
Type: 
number

(static) percent(value, valueA, valueB) → {number}

Returns what percentage the value is between valueA and valueB

Parameters:
NameTypeDescription
valuenumber
valueAnumber
valueBnumber
Returns:
Type: 
number

(static) rgb(ropt, gopt, bopt, aopt) → {Color}

Create a color object with RGBA values, white by default

Parameters:
NameTypeAttributesDefaultDescription
rnumber<optional>
1

red

gnumber<optional>
1

green

bnumber<optional>
1

blue

anumber<optional>
1

alpha

Returns:
Type: 
Color

(static) sign(value) → {number}

Returns the sign of value passed in

Parameters:
NameTypeDescription
valuenumber
Returns:
Type: 
number

(static) smoothStep(percent) → {number}

Applies smoothstep function to the percentage value

Parameters:
NameTypeDescription
percentnumber
Returns:
Type: 
number

(static) vec2(xopt, yopt) → {Vector2}

Create a 2d vector, can take another Vector2 to copy, 2 scalars, or 1 scalar

Parameters:
NameTypeAttributesDefaultDescription
xVector2 | number<optional>
0
ynumber<optional>
Returns:
Type: 
Vector2
Example
let a = vec2(0, 1); // vector with coordinates (0, 1)
let b = vec2(a);    // copy a into b
a = vec2(5);        // set a to (5, 5)
b = vec2();         // set b to (0, 0)

(static) wave(frequencyopt, amplitudeopt, topt) → {number}

Returns an oscillating wave between 0 and amplitude with frequency of 1 Hz by default

Parameters:
NameTypeAttributesDefaultDescription
frequencynumber<optional>
1

Frequency of the wave in Hz

amplitudenumber<optional>
1

Amplitude (max height) of the wave

tnumber<optional>
time

Value to use for time of the wave

Returns:
  • Value waving between 0 and amplitude
Type: 
number