platjs
Version:
Simple engine for platformer physics and rendering
56 lines • 1.78 kB
TypeScript
import GameObject, { emptyRenderFunction } from "./object";
import PhysicalBody from "./physicalBody";
export default class ControlledBody extends PhysicalBody {
maxXSpeed: number;
jumpVel: number;
keys: {
w: boolean;
a: boolean;
s: boolean;
d: boolean;
top: boolean;
bottom: boolean;
right: boolean;
left: boolean;
};
xAcceleration: number;
jumps: number;
maxJumps: number;
wallJumps: boolean;
wallPushOffSpeed: number;
/**
* 0 for left, 1 for center, 2 for right
*/
wallSide: 0 | 1 | 2;
constructor({ x, y, rotation, width, height, image, color, layer, mass, render, update, maxXSpeed, jumpVel, maxJumps, wallJump, wallPushOffSpeed, onCollide, }?: {
x?: number;
y?: number;
rotation?: number;
width?: number;
height?: number;
image?: HTMLImageElement | null;
color?: string | null;
layer?: number;
mass?: number;
render?: emptyRenderFunction | null;
update?: (self: ControlledBody) => void;
maxXSpeed?: number;
jumpVel?: number;
maxJumps?: number;
wallJump?: boolean;
wallPushOffSpeed?: number;
onCollide?: (object: GameObject) => void;
});
getPreventFriction(): boolean;
jump(): void;
bindKeyboardControls({ wasd, arrowKeys, spaceJump, }?: {
wasd?: boolean | undefined;
arrowKeys?: boolean | undefined;
spaceJump?: boolean | undefined;
}): void;
private wasdKeyListener;
private arrowKeyListener;
private spaceKeyListener;
private updateHorizontalMovement;
}
//# sourceMappingURL=controlledBody.d.ts.map