portfolio/assets/js/app.js

149 lines
3.2 KiB
JavaScript

var _listener
var TO_RADIANS = Math.PI/180;
var dialogMode = true
var terminalMode = false
var spriteSize = 16 * 5
var spriteMap = new Image()
spriteMap.src = './assets/img/sprites/sprite-map-1.png'
var canvasOffset = 9
var canvas = document.getElementById("canvas")
var ctx = canvas.getContext("2d")
canvas.width = spriteSize * canvasOffset
canvas.height = canvas.width
var audio = null
var terminal = new Terminal()
var games = new Games()
var music = new Music()
var dialog = new Dialog()
var resume = new Resume()
var portfolio = new Portfolio()
var indicator = new Indicator()
var player = new Player(1, 1, 'down')
window.addEventListener("resize", function() {
terminal.resize();
games.resize();
})
function renderRoom() {
// render wall
for (let i = 0; i < canvasOffset; i++) {
new Renderer(2, 1, i, 0)
}
// Render Wood Floor
for (let i = 0; i < canvasOffset; i++) {
for (let j = 1; j < canvasOffset; j++) {
new Renderer(1, 0, i, j)
}
}
// Render Rug row 1
new Renderer(2, 0, 1, 2)
new Renderer(3, 0, 2, 2)
new Renderer(3, 0, 3, 2)
new Renderer(3, 0, 4, 2)
new Renderer(3, 0, 5, 2)
new Renderer(3, 0, 6, 2)
new Renderer(2, 0, 7, 2, 90)
// Render Rug row 1
new Renderer(3, 0, 1, 3, 270)
new Renderer(4, 0, 2, 3)
new Renderer(4, 0, 3, 3)
new Renderer(5, 0, 4, 3)
new Renderer(5, 0, 5, 3)
new Renderer(5, 0, 6, 3)
new Renderer(3, 0, 7, 3, 90)
// Render Rug row 2
new Renderer(3, 0, 1, 4, 270)
new Renderer(5, 0, 2, 4)
new Renderer(5, 0, 3, 4)
new Renderer(5, 0, 4, 4)
new Renderer(5, 0, 5, 4)
new Renderer(5, 0, 6, 4)
new Renderer(3, 0, 7, 4, 90)
// Render Rug row 3
new Renderer(3, 0, 1, 5, 270)
new Renderer(5, 0, 2, 5)
new Renderer(5, 0, 3, 5)
new Renderer(5, 0, 4, 5)
new Renderer(5, 0, 5, 5)
new Renderer(5, 0, 6, 5)
new Renderer(3, 0, 7, 5, 90)
// Render Rug row
new Renderer(3, 0, 1, 6, 270)
new Renderer(5, 0, 2, 6)
new Renderer(5, 0, 3, 6)
new Renderer(5, 0, 4, 6)
new Renderer(5, 0, 5, 6)
new Renderer(4, 0, 6, 6)
new Renderer(3, 0, 7, 6, 90)
// Render Rug row 4
new Renderer(2, 0, 1, 7, 270)
new Renderer(3, 0, 2, 7, 180)
new Renderer(3, 0, 3, 7, 180)
new Renderer(3, 0, 4, 7, 180)
new Renderer(3, 0, 5, 7, 180)
new Renderer(3, 0, 6, 7, 180)
new Renderer(2, 0, 7, 7, 180)
// render TV
new Renderer(6, 0, 7, 0)
new Renderer(7, 0, 8, 0)
new Renderer(6, 1, 7, 1)
new Renderer(7, 1, 8, 1)
// render bookshelves
new Renderer(1, 1, 0, 0)
new Renderer(1, 1, 1, 0)
// render computer
new Renderer(0, 8, 2, 4)
new Renderer(1, 8, 3, 4)
new Renderer(2, 8, 4, 4)
new Renderer(3, 8, 5, 4)
// render maomao
new Renderer(4, 1, 6, 6)
// render window
new Renderer(3, 1, 4, 0)
//render player
player.render()
// render second half of computer
new Renderer(0, 7, 2, 3)
new Renderer(1, 7, 3, 3)
new Renderer(2, 7, 4, 3)
new Renderer(3, 7, 5, 3)
// render guitar
new Renderer(3, 2, 0, 7)
new Renderer(3, 3, 0, 8)
new Renderer(4, 2, 1, 8)
}
dialog.startIntroDialogSequence()
function gameLoop() {
renderRoom()
document.removeEventListener("keydown", _listener);
if (terminalMode) {
terminal.getKeystroke();
} else if (dialogMode) {
// pass
} else {
this.getKeystroke();
}
}
spriteMap.onload = function() {
setInterval(gameLoop, 33);
}