excalibur
Version:
Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.
29 lines (28 loc) • 1.31 kB
TypeScript
import { CollisionContact } from '../Detection/CollisionContact';
import { ContactConstraintPoint } from './ContactConstraintPoint';
import { CollisionSolver } from './Solver';
import { DeepRequired } from '../../Util/Required';
import { PhysicsConfig } from '../PhysicsConfig';
export declare class RealisticSolver implements CollisionSolver {
config: DeepRequired<Pick<PhysicsConfig, 'realistic'>['realistic']>;
directionMap: Map<string, "horizontal" | "vertical">;
distanceMap: Map<string, number>;
constructor(config: DeepRequired<Pick<PhysicsConfig, 'realistic'>['realistic']>);
lastFrameContacts: Map<string, CollisionContact>;
idToContactConstraint: Map<string, ContactConstraintPoint[]>;
getContactConstraints(id: string): ContactConstraintPoint[];
solve(contacts: CollisionContact[]): CollisionContact[];
preSolve(contacts: CollisionContact[]): void;
postSolve(contacts: CollisionContact[]): void;
/**
* Warm up body's based on previous frame contact points
* @param contacts
*/
warmStart(contacts: CollisionContact[]): void;
/**
* Iteratively solve the position overlap constraint
* @param contacts
*/
solvePosition(contacts: CollisionContact[]): void;
solveVelocity(contacts: CollisionContact[]): void;
}