jumpstorm/engine/config/constants.ts

48 lines
1.1 KiB
TypeScript
Raw Normal View History

2023-08-25 18:48:17 -04:00
import { Action } from '../interfaces';
2023-07-19 23:38:24 -04:00
export namespace KeyConstants {
export const KeyActions: Record<string, Action> = {
a: Action.MOVE_LEFT,
2023-08-26 19:55:27 -04:00
arrowleft: Action.MOVE_LEFT,
2023-07-19 23:38:24 -04:00
d: Action.MOVE_RIGHT,
2023-08-26 19:55:27 -04:00
arrowright: Action.MOVE_RIGHT,
2023-07-19 23:38:24 -04:00
w: Action.JUMP,
2023-08-26 19:55:27 -04:00
arrowup: Action.JUMP,
2023-08-25 18:48:17 -04:00
' ': Action.JUMP
2023-07-19 23:38:24 -04:00
};
// value -> [key] from KeyActions
2023-07-19 23:38:24 -04:00
export const ActionKeys: Map<Action, string[]> = Object.keys(
2023-08-25 18:48:17 -04:00
KeyActions
2023-07-19 23:38:24 -04:00
).reduce((acc: Map<Action, string[]>, key) => {
2023-08-26 19:55:27 -04:00
const action = KeyActions[key.toLowerCase()];
2023-07-19 23:38:24 -04:00
if (acc.has(action)) {
acc.get(action)!.push(key);
2023-07-19 23:38:24 -04:00
return acc;
}
acc.set(action, [key]);
return acc;
}, new Map());
2023-07-19 23:38:24 -04:00
}
export namespace PhysicsConstants {
export const MAX_JUMP_TIME_MS = 150;
export const GRAVITY = 0.0075;
2023-08-26 19:55:27 -04:00
export const PLAYER_MOVE_VEL = 0.8;
2023-08-12 15:49:16 -04:00
export const PLAYER_JUMP_ACC = -0.008;
export const PLAYER_JUMP_INITIAL_VEL = -1;
2023-07-19 23:38:24 -04:00
}
2023-07-21 01:22:26 -04:00
export namespace Miscellaneous {
export const WIDTH = 600;
export const HEIGHT = 800;
export const DEFAULT_GRID_WIDTH = 30;
export const DEFAULT_GRID_HEIGHT = 30;
2023-07-21 01:22:26 -04:00
}