/atom

a <canvas> game framework that does as little as possible

Primary LanguageCoffeeScriptBSD 2-Clause "Simplified" LicenseBSD-2-Clause

atom

a <canvas> game framework that does as little as possible

Honestly, this thing does so little that you should just read the code.

Here's what a game using Atom looks like:

class Game extends atom.Game
  constructor: ->
    super
    atom.input.bind atom.key.LEFT_ARROW, 'left'
    atom.input.bind atom.key.RIGHT_ARROW, 'right'

  update: (dt) ->
    if atom.input.pressed 'left'
      console.log "player started moving left"
    else if atom.input.down 'left'
      console.log "player still moving left"

  draw: ->
    atom.context.fillStyle = 'black'
    atom.context.fillRect 0, 0, atom.width, atom.height
    # Carry on.

game = new Game

window.onblur = -> game.stop()
window.onfocus = -> game.run()

game.run()
<canvas></canvas>
<script src="atom.js"></script>
<script src="game.js"></script>

not a library

atom isn't intended to be used as a library, to be npm installed and require()d. It's intended to be a starting point, a nucleus around which you build your game. Copy it into your source folder and tweak it when you need to.