-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
74 lines (51 loc) · 2.83 KB
/
main.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
67
68
69
70
71
72
73
74
// Main code frome tutorial by Frank Arendpoth (https://youtu.be/w-OKdSHRlfA)
window.addEventListener("load",function(event) {
"use strict";
// --------------------- FUNCTIONS ---------------------
var keyDownUp = function(event) {
// passes the event type (whether its a key down press or key up (releasing the key))
// and passes the keyCode to the keyDownUp function in the controller
controller.keyDownUp(event.type, event.keyCode);
}
var resize = function(event) {
// subtracting 32px gives a small 16px border on either side of the game world on the window
display.resize(document.documentElement.clientWidth - 32, document.documentElement.clientHeight - 32, game.world.height / game.world.width);
display.render();
}
var render = function () {
// display.fill(game.world.background_color); this just sets a backgground color
display.drawMap(game.world.map, game.world.columns);
// display.drawRectangle(game.world.player.x, game.world.player.y, game.world.player.width, game.world.player.height, game.world.player.color);
display.drawPlayer(game.world.player, game.world.player.color1, game.world.player.color2);
display.render();
};
var update = function() {
// If the controller left button is active, then move the player left
if (controller.left.active) {game.world.player.moveLeft();}
if (controller.right.active) {game.world.player.moveRight();}
// sets controller up active to false so the player does not continuously jump as you hold down up arrow
if (controller.up.active) {game.world.player.jump(); controller.up.active = false}
game.update();
};
// --------------------- OBJECTS ---------------------
var controller = new Controller();
var display = new Display(document.querySelector("canvas"));
var game = new Game();
// render and update are called 30 times every second
var engine = new Engine(1000/30, render, update);
// --------------------- INITIALIZE ---------------------
display.buffer.canvas.height = game.world.height;
display.buffer.canvas.width = game.world.width;
display.tile_sheet.image.addEventListener("load", function(event) {
resize();
engine.start();
}, {once : true});
// load the display image first and then start the engine
display.tile_sheet.image.src= "newtileset.png";
window.addEventListener("keydown", keyDownUp);
window.addEventListener("keyup", keyDownUp);
window.addEventListener("resize", resize);
document.getElementById("upBtn").addEventListener("click", Game.jump);
document.getElementById("rightBtn").addEventListener("click", Game.moveRight);
document.getElementById("leftBtn").addEventListener("click", Game.moveLeft);
});