0.3.7 • Published 10 months ago

extra-game-loop v0.3.7

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

extra-game-loop

Install

npm install --save extra-game-loop
# or
yarn add extra-game-loop

Usage

import { GameLoop } from 'extra-game-loop'

const gameLoop = new GameLoop({
  fixedDeltaTime: 1000 / 50
, maximumDeltaTime: (1000 / 50) * 30
, update(deltaTime: number): void {
    // ...
  }
, fixedUpdate(deltaTime: number): void {
    // ...
  }
, lateUpdate(deltaTime: number, alpha: number): void {
    // ...
  }
, render(alpha: number): void {
    // ...
  }
})

gameLoop.start()

API

GameLoop

class GameLoop<FixedDeltaTime extends number = number> {
  constructor(options: {
    fixedDeltaTime: FixedDeltaTime /* ms */
    maximumDeltaTime: number /* ms */
    update?: (deltaTime: number /* ms */) => void
    fixedUpdate?: (deltaTime: FixedDeltaTime /* ms */) => void
    lateUpdate?: (deltaTime: number /* ms */, alpha: number) => void
    render?: (alpha: number /* [0, 1) */) => void
  })

  start(): void
  stop(): void
  getFramesOfSecond(): number

  /**
   * This method allows you to manually advance to the next frame.
   */
  nextFrame(deltaTime: number): void
}

GameLoopLite

class GameLoopLite {
  constructor(options: {
    update?: (deltaTime: number /* ms */) => void
    render?: () => void
  })

  start(): void
  stop(): void
  getFramesOfSecond(): number

  /**
   * This method allows you to manually advance to the next frame.
   */
  nextFrame(deltaTime: number): void
}

The lite version of GameLoop for situations where the physics system is not needed.

Basically, it can be seen as an OOP wrapper for requestAnimationFrame, so it can be used for non-game projects as well.

0.3.7

10 months ago

0.3.6

10 months ago

0.3.5

10 months ago

0.3.4

2 years ago

0.3.3

2 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago