import { Action } from '../interfaces'; export namespace KeyConstants { export const KeyActions: Record = { a: Action.MOVE_LEFT, arrowleft: Action.MOVE_LEFT, d: Action.MOVE_RIGHT, arrowright: Action.MOVE_RIGHT, w: Action.JUMP, arrowup: Action.JUMP, ' ': Action.JUMP }; // value -> [key] from KeyActions export const ActionKeys: Map = Object.keys( KeyActions ).reduce((acc: Map, key) => { const action = KeyActions[key.toLowerCase()]; if (acc.has(action)) { acc.get(action)!.push(key); return acc; } acc.set(action, [key]); return acc; }, new Map()); } export namespace PhysicsConstants { export const MAX_JUMP_TIME_MS = 150; export const GRAVITY = 0.0075; export const PLAYER_MOVE_VEL = 0.8; export const PLAYER_JUMP_ACC = -0.008; export const PLAYER_JUMP_INITIAL_VEL = -1; } export namespace Miscellaneous { export const WIDTH = 600; export const HEIGHT = 800; export const DEFAULT_GRID_WIDTH = 30; export const DEFAULT_GRID_HEIGHT = 30; }