@maximeij/css-brickout
Version:
Classic Brickout Game Engine implemented in Typescript and rendered with CSS. No dependencies.
45 lines (44 loc) • 1.33 kB
TypeScript
export type Vector = {
x: number;
y: number;
};
type Moving = {
dx?: number;
dy?: number;
};
export type BoundingBox = {
topL: Vector;
topR: Vector;
bottomL: Vector;
bottomR: Vector;
};
export type Rectangle = Vector & Moving & {
width: number;
height: number;
angle: number;
boundingBox: BoundingBox;
};
export type Circle = Vector & Moving & {
radius: number;
};
export type AxisOverlap = {
overlap: number;
axis: Vector;
adjustedCircle: Circle;
};
export declare function rotatePoint(x: number, y: number, originX: number, originY: number, angle: number): Vector;
export declare function rotateVector(x: number, y: number, angle: number): Vector;
export declare function overlapOnAxis(circle: Circle, axis: Vector, rectangleCorners: BoundingBox): number;
export declare function rayAABB(localP0: Vector, localVelocity: Vector, halfExtents: Vector): {
tmin: number;
normal: Vector;
} | null;
type CollisionResult = {
position: Vector;
normal: Vector;
tmin: number;
};
export declare function getCRCollisionPosition(rect: Rectangle, circle: Circle): CollisionResult | null;
export declare function getCCCollisionPosition(lead: Circle, other: Circle): CollisionResult | null;
export declare function normalizeAngle(angle: number): number;
export {};