prendy
Version:
Make games with prerendered backdrops using babylonjs and repond
27 lines (24 loc) • 1.04 kB
text/typescript
import { getState, setState } from "repond";
function handleKeyDown(event: KeyboardEvent) {
const keyboardState = getState().keyboards.main;
const keyName = event.code as keyof typeof keyboardState;
if (keyboardState[keyName] !== undefined && keyboardState[keyName] === false) {
event.preventDefault();
setState({ keyboards: { main: { [keyName]: true } } });
}
}
function handleKeyUp(event: KeyboardEvent) {
const keyboardState = getState().keyboards.main;
const keyName = event.code as keyof typeof keyboardState;
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);
}