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.
23 lines (22 loc) • 1.08 kB
TypeScript
import { CollisionContact } from '../Detection/CollisionContact';
import { CollisionSolver } from './Solver';
import { PhysicsConfig } from '../PhysicsConfig';
import { DeepRequired } from '../../Util/Required';
/**
* ArcadeSolver is the default in Excalibur. It solves collisions so that there is no overlap between contacts,
* and negates velocity along the collision normal.
*
* This is usually the type of collisions used for 2D games that don't need a more realistic collision simulation.
*
*/
export declare class ArcadeSolver implements CollisionSolver {
config: DeepRequired<Pick<PhysicsConfig, 'arcade'>['arcade']>;
directionMap: Map<string, "horizontal" | "vertical">;
distanceMap: Map<string, number>;
constructor(config: DeepRequired<Pick<PhysicsConfig, 'arcade'>['arcade']>);
solve(contacts: CollisionContact[]): CollisionContact[];
preSolve(contacts: CollisionContact[]): void;
postSolve(contacts: CollisionContact[]): void;
solvePosition(contact: CollisionContact): void;
solveVelocity(contact: CollisionContact): void;
}