-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
66 lines (57 loc) · 1.54 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var canvasEl = document.querySelector('canvas')
canvasEl.style.backgroundColor = 'palegreen';
canvasEl.style.display = 'block'; // to make our canvas an independent object
canvasEl.width = 500; //do not set in CSS as it gets treated as an image!
canvasEl.height = 500; // in px
canvasEl.style.margin = '0 auto'; //centers our canvas! :)
var context = canvasEl.getContext('2d');
var GRID_SIZE = 20; //All caps for emphasis on this constant
for (var i = GRID_SIZE; i < canvasEl.width; i += GRID_SIZE) {
context.strokeStyle = 'black';
context.beginPath();
context.moveTo(i - 0.5, 0);
context.lineTo(i - 0.5, canvasEl.height);
context.closePath();
context.stroke();
context.beginPath();
context.moveTo(0, i - 0.5);
context.lineTo(canvasEl.width, i - 0.5);
context.closePath();
context.stroke();
}
//Snake snake |__|˚``
var SNAKE_COLOR = 'coral';
var SNAKE = [
{ // Footer
x: 0,
y: 0
},
{
x: GRID_SIZE,
y: 0
},
{
x: GRID_SIZE * 2,
y: 0
},
{ // Head
x: GRID_SIZE * 3,
y: 0
}
];
var gameSpeed = 250; //in ms
var snakeDirection = 'right';
function gameManager() {
var newHead = SNAKE.shift();
var oldHead = SNAKE[SNAKE.length - 1];
if (snakeDirection === 'right') {
newHead.x = oldHead.x + GRID_SIZE;
newHead.y = oldHead.y;
}
SNAKE.push(newHead);
context.fillStyle = SNAKE_COLOR;
SNAKE.forEach(function(snakePart) {
context.fillRect(snakePart.x, snakePart.y, GRID_SIZE, GRID_SIZE);
}); // This draws Snake |__|ˆ``
}
var gameLoop = setInterval(gameManager, gameSpeed);