prendy
Version:
Make games with prerendered backdrops using babylonjs and repond
25 lines (24 loc) • 980 B
JavaScript
import { getState, setState } from "repond";
function handleKeyDown(event) {
const keyboardState = getState().keyboards.main;
const keyName = event.code;
if (keyboardState[keyName] !== undefined && keyboardState[keyName] === false) {
event.preventDefault();
setState({ keyboards: { main: { [keyName]: true } } });
}
}
function handleKeyUp(event) {
const keyboardState = getState().keyboards.main;
const keyName = event.code;
if (keyboardState[keyName] !== undefined && keyboardState[keyName] === true) {
setState({ keyboards: { main: { [keyName]: false } } });
}
}
export function connectKeyboardInputsToState() {
document.addEventListener("keydown", handleKeyDown, false);
document.addEventListener("keyup", handleKeyUp, false);
}
export function disconnectKeyboardInputsToState() {
document.removeEventListener("keydown", handleKeyDown, false);
document.removeEventListener("keyup", handleKeyUp, false);
}