UNPKG

@pixelation/engine

Version:
25 lines (24 loc) 951 B
import { Tagged } from "./tagged"; import { Surface } from "./graphics"; import { Inputs } from "./input"; import { Audio } from "./audio"; export type Fps = Tagged<"Fps", number>; export type Time = Tagged<"Time", number>; export type DeltaTime = Tagged<"DeltaTime", number>; export type Setup = (surface: Surface, inputs: Inputs, audio: Audio) => void; export type Cleanup = (surface: Surface, inputs: Inputs, audio: Audio) => void; export type Update = (surface: Surface, inputs: Inputs, audio: Audio, dt: DeltaTime, t: Time) => void; export type Render = (surface: Surface, inputs: Inputs, dt: DeltaTime, t: Time, fps: Fps) => void; export interface Component { setup?: Setup; cleanup?: Cleanup; update?: Update; render: Render; } export interface RunOptions { surface: Surface; setup?: Setup; update?: Update; render?: Render; } export declare const run: ({ surface, setup, update, render, }: RunOptions) => void;