Assignment 13
by Ebony McCoy
HTML
<canvas id="canvas" width="600" height="400" tabindex="1"></canvas>
CSS
#canvas {
width: 600px;
height: 400px;
border: 1px solid lightgreen;
}
JavaScript
// Collect The Square game
// Get a reference to the canvas DOM element
var canvas = document.getElementById('canvas');
// Get the canvas drawing context
var context = canvas.getContext('2d');
// Your score
var score = 0;
// Properties for your square
var x = 50; // X position
var y = 100; // Y position
var speed = 6; // Distance to move each frame
var sideLength = 50; // Length of each side of the square
// FLags to track which keys are pressed
var down = false;
var up = false;
var right = false;
var left = false;
// Properties for the target square
var targetX = 0;
var targetY = 0;
var targetLength = 25;
// Determine if number a is within the range b to c (exclusive)
function isWithin(a, b, c) {
return (a > b && a < c);
}
// Countdown timer (in seconds)
var countdown = 30;
// ID to track the setTimeout
var id = null;
// Listen for keydown events
canvas.addEventListener('keydown', function(event) {
event.preventDefault();
console.log(event.key, event.keyCode);
if (event.keyCode === 40) { // DOWN
down = true;
}
if (event.keyCode === 38) { // UP
up = true;
}
if (event.keyCode === 37) { // LEFT
left = true;
}
if (event.keyCode === 39) { // RIGHT
right = true;
}
});
// Listen for keyup events
canvas.addEventListener('keyup', function(event) {
event.preventDefault();
console.log(event.key, event.keyCode);
if (event.keyCode === 40) { // DOWN
down = false;
}
if (event.keyCode === 38) { // UP
up = false;
}
if (event.keyCode === 37) { // LEFT
left = false;
}
if (event.keyCode === 39) { // RIGHT
right = false;
}
});
// Show the start menu
function menu() {
erase();
context.fillStyle = '#000000';
context.font = '36px Arial';
context.textAlign = 'center';
context.fillText('Collect the Square!', canvas.width / 2, canvas.height / 4);
context.font = '24px Arial';
context.fillText('Click to Start', canvas.width / 2, canvas.height / 2);
context.font = '18px Arial'
...