UNPKG

@maximeij/css-brickout

Version:

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

92 lines (91 loc) 2.85 kB
import { Ball, BallConfig, Clickable, Controls, Debug, HUD, Level, LevelConfig, Paddle, PaddleConfig, Pause, Responsive } from './'; type GameOptions = { fps: number; capFps: boolean; allowDebug: boolean; nextLifeDelayMs: number; mouseoutPauseDelayMs: number; mouseoverResumeDelayMs: number; showCursorInPlay: boolean; demoMode: boolean; updatesPerFrame: number; skipDefaultRules: boolean; columnAspectRatio: number; }; export type GameParams = { ballConfigs: Array<Omit<BallConfig, 'idx' | 'game'>>; levelConfig: Omit<LevelConfig, 'game'>; paddleConfig: Partial<PaddleConfig>; playerConfig?: PlayerParams; parentId?: string; options?: Partial<GameOptions>; }; type PlayerParams = { lives: number; score?: number; }; type State = 'paused' | 'playing' | 'debug' | 'won' | 'lost' | 'away' | 'starting'; export declare class Game implements Responsive { element: HTMLDivElement; sizes: { width: number; height: number; }; state: State; debounceTimer: NodeJS.Timeout | undefined; ogParams: GameParams; debug: Debug | null; lastFrameTime: number; lastFpsUpdate: number; options: GameOptions; _speed: number; fpsInterval: number; fpsCap: number; msSinceStart: number; balls: Ball[]; level: Level; paddle: Paddle; hud: HUD | null; controls: Controls | null; lives: number; score: number; paused: Pause | null; resumeLink: Clickable | null; constructor(params: GameParams); setBalls: () => void; debounce: (func: () => void, timeout?: number) => () => void; start: () => void; get speed(): number; set speed(speed: number); /** * @deprecated Set speed instead */ setOverallSpeed: (speed: number) => void; update: () => void; handleBallLost: EventListener; handleBrickDestroyed: EventListener; win: () => void; updateHUDLives: () => void; updateHUDScore: () => void; updateHUDTime: () => void; toggleDebug: () => void; toggleFullscreen: () => Promise<void>; togglePause: () => void; updateSizes: (callResize?: boolean) => boolean; handleResize: () => void; handleVisibilityChange: () => void; handleKeyPress: (e: KeyboardEvent) => void; handleMouseEnter: () => void; handleMouseLeave: () => void; createdPausedElement: (content: string, classes?: string) => void; pause: (to?: State) => void; resume: (from?: State) => void; dispatchGameEvent: (name: string) => void; destroy: () => void; } export type GamePausedEvent = CustomEvent<Game>; export type GameResumedEvent = CustomEvent<Game>; export type GameLostEvent = CustomEvent<Game>; export type GameStartedEvent = CustomEvent<Game>; export type GameWonEvent = CustomEvent<Game>; export {};