Canvas game tutorial

http://www.lostdecadegames.com/how-to-make-a-simple-html5-canvas-game/

by weeklygame

HTML

<body>
    <canvas id="game"></canvas>
</body>

JavaScript

// create canvas
var canvas = document.getElementById('game');
var ctx =  canvas.getContext('2d');

canvas.width = 512;
canvas.height = 480;

// background image
var bgReady = false;
var bgImage = new Image();

bgImage.onload = function() {
    bgReady = true;
};
bgImage.src = 'https://raw.github.com/lostdecade/simple_canvas_game/master/images/background.png';

// Hero image
var heroReady = false;
var heroImage = new Image();
heroImage.onload = function () {
	heroReady = true;
};
heroImage.src = "https://raw.github.com/lostdecade/simple_canvas_game/master/images/hero.png";

// Monster image
var monsterReady = false;
var monsterImage = new Image();
monsterImage.onload = function () {
	monsterReady = true;
};
monsterImage.src = "https://raw.github.com/lostdecade/simple_canvas_game/master/images/monster.png";


// game objects
var hero = {
    speed: 256, // movement in pixels per second
    x: 0,
    y: 0
};
var monster = {
    x: 0,
    y: 0
};
var monstersCaught = 0;

// Handle keyboard controls
var keysDown = {};

addEventListener("keydown", function (e) {
	keysDown[e.keyCode] = true;
}, false);

addEventListener("keyup", function (e) {
	delete keysDown[e.keyCode];
}, false);

// Reset the game when the player catches a monster
var reset = function () {
	hero.x = canvas.width / 2;
	hero.y = canvas.height / 2;

	// Throw the monster somewhere on the screen randomly
	monster.x = 32 + (Math.random() * (canvas.width - 64));
	monster.y = 32 + (Math.random() * (canvas.height - 64));
};

// Update game objects
var update = function(modifier) {
    if (38 in keysDown) { // Player holding up
        hero.y -= hero.speed * modifier;
    }
    if (40 in keysDown) { // Player holding down
        hero.y += hero.speed * modifier;
    }
    if (37 in keysDown) { // Player holding left
        hero.x -= hero.speed * modifier;
    }
    if (39 in keysDown) { // Player holding right
        hero.x += hero.speed * modifier;
    }

    // Are they touching?
    if (
        hero.x...