61 lines
1.5 KiB
JavaScript
61 lines
1.5 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 (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;
|
|
// show resume
|
|
}
|
|
}
|
|
}
|
|
};
|
|
document.addEventListener("keydown", _listener);
|
|
}
|