Engine

LittleJS - The Tiny Fast JavaScript Game Engine MIT License - Copyright 2021 Frank Force

Engine Features

  • Object oriented system with base class engine object
  • Base class object handles update, physics, collision, rendering, etc
  • Engine helper classes and functions like Vector2, Color, and Timer
  • Super fast rendering system for tile sheets
  • Sound effects audio with zzfx and music with zzfxm
  • Input processing system with gamepad and touchscreen support
  • Tile layer rendering and collision system
  • Particle effect system
  • Medal system tracks and displays achievements
  • Debug tools and debug rendering system
  • Post processing effects
  • Call engineInit() to start it up!

Members

(static, constant) engineName :String

Name of engine

Type:
  • String
Default Value
  • LittleJS

(static) engineObjects :Array

Array containing all engine objects

Type:
  • Array

(static) engineObjectsCollide :Array

Array with only objects set to collide with other objects this frame (for optimization)

Type:
  • Array

(static, constant) engineVersion :String

Version of engine

Type:
  • String
Default Value
  • 1.11.0

(static) frame :Number

Current update frame, used to calculate time

Type:
  • Number

(static, constant) frameRate :Number

Frames per second to update

Type:
  • Number
Default Value
  • 60

(static) paused :Boolean

Is the game paused? Causes time and objects to not be updated

Type:
  • Boolean
Default Value
  • false

(static) time :Number

Current engine time since start in seconds

Type:
  • Number

(static, constant) timeDelta :Number

How many seconds each frame lasts, engine uses a fixed time step

Type:
  • Number
Default Value
  • 1/60

(static) timeReal :Number

Actual clock time since start in seconds (not affected by pause or frame rate clamping)

Type:
  • Number

Methods

(static) engineAddPlugin(updateFunctionopt, renderFunctionopt)

Add a new update function for a plugin

Parameters:
NameTypeAttributesDescription
updateFunctionfunction<optional>
renderFunctionfunction<optional>

(static) engineInit(gameInit, gameUpdate, gameUpdatePost, gameRender, gameRenderPost, imageSourcesopt, rootElementopt)

Startup LittleJS engine with your callback functions

Parameters:
NameTypeAttributesDefaultDescription
gameInitfunction | function

Called once after the engine starts up

gameUpdatefunction

Called every frame before objects are updated

gameUpdatePostfunction

Called after physics and objects are updated, even when paused

gameRenderfunction

Called before objects are rendered, for drawing the background

gameRenderPostfunction

Called after objects are rendered, useful for drawing UI

imageSourcesArray<optional>
[]

List of images to load

rootElementHTMLElement<optional>

Root element to attach to, the document body by default

(static) engineObjectsCallback(posopt, sizeopt, callbackFunctionopt, objectsopt)

Triggers a callback for each object within a given area

Parameters:
NameTypeAttributesDefaultDescription
posVector2<optional>

Center of test area, or undefined for all objects

sizeNumber | Vector2<optional>

Radius of circle if float, rectangle size if Vector2

callbackFunctionfunction<optional>

Calls this function on every object that passes the test

objectsArray<optional>
engineObjects

List of objects to check

(static) engineObjectsCollect(posopt, sizeopt, objectsopt) → {Array}

Collects all object within a given area

Parameters:
NameTypeAttributesDefaultDescription
posVector2<optional>

Center of test area, or undefined for all objects

sizeNumber | Vector2<optional>

Radius of circle if float, rectangle size if Vector2

objectsArray<optional>
engineObjects

List of objects to check

Returns:
  • List of collected objects
Type: 
Array

(static) engineObjectsDestroy()

Destroy and remove all objects

(static) engineObjectsRaycast(start, end, objectsopt) → {Array}

Return a list of objects intersecting a ray

Parameters:
NameTypeAttributesDefaultDescription
startVector2
endVector2
objectsArray<optional>
engineObjects

List of objects to check

Returns:
  • List of objects hit
Type: 
Array

(static) engineObjectsUpdate()

Update each engine object, remove destroyed objects, and update time

(static) setPaused(isPaused)

Set if game is paused

Parameters:
NameTypeDescription
isPausedBoolean