portfolio/assets/js/keystroke.js

64 lines
1.6 KiB
JavaScript

function getKeystroke() {
_listener = function (event) {
if (
["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].indexOf(
event.code,
) > -1
) {
event.preventDefault();
}
if (event.key === "h" || event.key === "a" || event.key === "ArrowLeft") {
player.move('left')
} else if (
event.key === "j" ||
event.key === "s" ||
event.key === "ArrowDown"
) {
player.move('down')
} else if (
event.key === "k" ||
event.key === "w" ||
event.key === "ArrowUp"
) {
player.move('up')
} else if (
event.key === "l" ||
event.key === "d" ||
event.key === "ArrowRight"
) {
player.move('right')
} else if (
event.key === "Enter" &&
!terminal.active
) {
var playerPosition = [player.canvasX, player.canvasY]
if (player.direction === 'up') {
if (computerInteractionZones.some(a => playerPosition.every((v, i) => v === a[i]))) {
terminal.show();
}
if (gamesInteractionZones.some(a => playerPosition.every((v, i) => v === a[i]))) {
games.show();
}
if (portfolioInteractionZones.some(a => playerPosition.every((v, i) => v === a[i]))) {
portfolio.show();
}
}
if (player.direction === 'down' || player.direction === 'left') {
if (musicInteractionZones.some(a => playerPosition.every((v, i) => v === a[i]))) {
music.show();
}
}
if (player.direction === 'down' || player.direction === 'up') {
if (resumeInteractionZones.some(a => playerPosition.every((v, i) => v === a[i]))) {
indicator.hide('resume');
indicator.resumeIndicatorShown = true;
resume.show()
}
}
}
};
document.addEventListener("keydown", _listener);
}