-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
103 lines (80 loc) · 2.05 KB
/
script.js
File metadata and controls
103 lines (80 loc) · 2.05 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
window.onerror = function(msg, url, linenumber) {
alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
return true;
}
const canvas = document.getElementById("game");
const ctx = canvas.getContext("2d");
import * as canvasui from "./canvasui.js";
import * as tetrisboard from "./tetrisboard.js";
var screen = "startmenu";
var tick = 0;
//Helpful consts
const tileSize = 25;
//Initialising canvasui elements
canvasui.createCanvasButton(
"startButton",
{x: "0.5(w-100)", y: "(2h)/3", w: 100, h:50},
"Start",
"red",
"#ff5555",
function(){ startGame(); },
"startmenu"
);
function startGame() {
tetrisboard.initBoard();
screen = "game";
}
function draw() {
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = window.innerHeight;
ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);
if (screen == "startmenu") {
} else if (screen == "game") {
tetrisboard.drawBoard(ctx,tileSize);
}
canvasui.drawCanvasButtons(ctx,screen);
}
function gameLoop() {
tick += 1;
if (screen == "game") {
if (tick % 12 == 0) {
tetrisboard.update(tick,controls);
}
}
draw();
requestAnimationFrame(gameLoop);
}
//Controls handling
canvas.onclick = function(event) {
canvasui.handleClick(ctx,event,screen);
};
canvas.onmousemove = function(event) {
canvasui.handleMouseMove(ctx,event,screen);
};
var controls = {
"ArrowLeft":false,
"ArrowRight":false,
"ArrowUp":false,
"ArrowDown":false,
"z":false,
"x":false
};
document.onkeydown = function(event) {
console.log(event)
if (event.isComposing || event.keyCode === 229) {
return;
}
if (Object.keys(controls).includes(event.key)) {
controls[event.key] = true;
}
};
document.onkeyup = function(event) {
if (event.isComposing || event.keyCode === 229) {
return;
}
if (Object.keys(controls).includes(event.key)) {
controls[event.key] = false;
}
};
//Start game loop
requestAnimationFrame(gameLoop);