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.
56 lines (55 loc) • 2.29 kB
TypeScript
import { Color } from '../../Color';
import { ExcaliburGraphicsContext } from '../../Graphics/Context/ExcaliburGraphicsContext';
import { LineSegment } from '../../Math/line-segment';
import { Projection } from '../../Math/projection';
import { Ray } from '../../Math/ray';
import { Vector } from '../../Math/vector';
import { BoundingBox } from '../BoundingBox';
import { CollisionContact } from '../Detection/CollisionContact';
import { RayCastHit } from '../Detection/RayCastHit';
import { Collider } from './Collider';
import { Transform } from '../../Math/transform';
export declare class CompositeCollider extends Collider {
private _transform;
private _collisionProcessor;
private _dynamicAABBTree;
private _colliders;
private _compositeStrategy?;
/**
* Treat composite collider's member colliders as either separate colliders for the purposes of onCollisionStart/onCollision
* or as a single collider together.
*
* This property can be overridden on individual {@apilink CompositeColliders}.
*
* For composites without gaps or small groups of colliders, you probably want 'together'
*
* For composites with deliberate gaps, like a platforming level layout, you probably want 'separate'
*
* Default is 'together' if unset
*/
set compositeStrategy(value: 'separate' | 'together');
get compositeStrategy(): 'separate' | 'together';
constructor(colliders: Collider[]);
clearColliders(): void;
addCollider(collider: Collider): void;
removeCollider(collider: Collider): void;
getColliders(): Collider[];
get worldPos(): Vector;
get center(): Vector;
get bounds(): BoundingBox;
get localBounds(): BoundingBox;
get axes(): Vector[];
getFurthestPoint(direction: Vector): Vector;
getInertia(mass: number): number;
collide(other: Collider): CollisionContact[];
getClosestLineBetween(other: Collider): LineSegment;
contains(point: Vector): boolean;
rayCast(ray: Ray, max?: number): RayCastHit | null;
project(axis: Vector): Projection;
update(transform: Transform): void;
debug(ex: ExcaliburGraphicsContext, color: Color, options?: {
lineWidth: number;
pointSize: number;
}): void;
clone(): Collider;
}