gameloop
v1.1.4
Published
simple game loop for javascript – server or browser.
Downloads
30
Maintainers
Readme
gameloop
the core methods/events of a game loop: start, end, pause, resume, update, draw
Install
npm install gameloop
Designed for use with browserify.
Usage
Create a canvas and game object:
var canvas = document.createElement('canvas')
var game = new Game({
renderer: canvas.getContext('2d')
})
You can use it server-side by not passing in a canvas context: var game = Game();
the
new
keyword is optional
Use update and draw events
game.on('update', function(dt){})
game.on('draw', function(context){})
API
createGame
Create the game
Parameters
options
Objectoptions.renderer
Objectoptions.fps
Number
Examples
var createGame = require('gameloop')
var game = createGame({
renderer: document.createElement('canvas').getContext('2d')
})
game.draw
Draw the game. Emits the draw
event. You'll likely never call this method, but you may need to override it. Make sure to always emit the update event with the renderer and delta
time.
Parameters
renderer
ObjectdeltaTime
Number – time remaining until game.update is calledframeState
game.end
End the game. Emits the end
event/
Parameters
state
Object – state of end game conditions
Examples
game.end()
game.pause
Pause the game. Emits the pause
event.
Examples
game.pause()
game.resume
Resume the game. Emits the resume
event.
Examples
game.resume()
game.start
Start the game. Emits the start
event.
Parameters
state
Object – arbitrary starting game state emitted bystart
event.
Examples
game.start()
game.toggle
Pause or start game depending on game state. Emits either the pause
or resume
event.
Examples
game.toggle()
game.update
Update the game state. Emits the update
event. You'll likely never call this method, but you may need to override it. Make sure to always emit the update event with the delta
time.
Parameters
interval
Number – interval between each frametime
Number – total time elapsed
Game#draw
Draw event.
Parameters
frameState
Number – current state of the completion of the framedelta
Number
Examples
game.on('draw', function (renderer, dt) {
console.log(dt)
})
Game#end
End event. Fired when game.end()
is called.
Parameters
state
Object state of end game conditions
Examples
game.on('end', function (state) {})
Game#pause
Pause event. Fired when game.pause()
is called.
Examples
game.on('pause', function () {})
Game#resume
Resume event. Fired when game.resume()
is called.
Examples
game.on('resume', function () {})
Game#start
Start event. Fired when game.start()
is called.
Examples
game.on('start', function () {})
Game#update
Update event.
Parameters
interval
Number – interval between each frameframeState
Number – current state of the completion of the frametime
Number – total time elapsed
Examples
game.on('update', function (interval, time) {
console.log(interval)
})
Contributing
- Fork this repository.
- Create a branch for your changes.
- Include tests if applicable.
- Add/edit documentation for any changes.
- Submit a pull request.
License
MIT