UNPKG

@maximeij/css-brickout

Version:

Classic Brickout Game Engine implemented in Typescript and rendered with CSS. No dependencies.

45 lines (44 loc) 1.33 kB
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 {};