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);
}
