UNPKG

@pixelation/engine

Version:
106 lines (105 loc) 4.86 kB
import { Aseprite, AsepriteTagAnimationDirection } from "@pixelation/aseprite"; import { PackedColor } from "./colors"; import { Matrix3, Rect } from "./geometry"; import { DeltaTime } from "./lifecycle"; export type Surface = Screen | VirtualScreen; export declare class Screen { width: number; height: number; image: ImageData; virtual: boolean; canvas: HTMLCanvasElement; context: CanvasRenderingContext2D; constructor(width: number, height: number, image?: ImageData); commit(): void; clear(): void; pixel(x: number, y: number, color: PackedColor): void; pixelUnpacked(x: number, y: number, r: number, g: number, b: number, a: number): void; blit(source: ImageData, x?: number, y?: number, transform?: Matrix3): void; blitMask(source: ImageData, mask: ImageData, x?: number, y?: number, transform?: Matrix3): void; line(x0: number, y0: number, x1: number, y1: number, color: PackedColor): void; fillRect(sx: number, sy: number, sw: number, sh: number, color: PackedColor, transform?: Matrix3): void; traceRect(sx: number, sy: number, sw: number, sh: number, color: PackedColor, transform?: Matrix3): void; fillCirc(sx: number, sy: number, sr: number, color: PackedColor, transform?: Matrix3): void; traceCirc(sx: number, sy: number, sr: number, color: PackedColor, transform?: Matrix3): void; fillTri(sx0: number, sy0: number, sx1: number, sy1: number, sx2: number, sy2: number, color: PackedColor, transform?: Matrix3): void; traceTri(sx0: number, sy0: number, sx1: number, sy1: number, sx2: number, sy2: number, color: PackedColor, transform?: Matrix3): void; } export declare class VirtualScreen { width: number; height: number; image: ImageData; virtual: boolean; canvas: OffscreenCanvas; context: OffscreenCanvasRenderingContext2D; constructor(width: number, height: number, image?: ImageData); commit(): void; clear(): void; pixel(x: number, y: number, color: PackedColor): void; pixelUnpacked(x: number, y: number, r: number, g: number, b: number, a: number): void; blit(source: ImageData, x?: number, y?: number, transform?: Matrix3): void; blitMask(source: ImageData, mask: ImageData, x?: number, y?: number, transform?: Matrix3): void; line(x0: number, y0: number, x1: number, y1: number, color: PackedColor): void; fillRect(sx: number, sy: number, sw: number, sh: number, color: PackedColor, transform?: Matrix3): void; traceRect(sx: number, sy: number, sw: number, sh: number, color: PackedColor, transform?: Matrix3): void; fillCirc(sx: number, sy: number, sr: number, color: PackedColor, transform?: Matrix3): void; traceCirc(sx: number, sy: number, sr: number, color: PackedColor, transform?: Matrix3): void; fillTri(sx0: number, sy0: number, sx1: number, sy1: number, sx2: number, sy2: number, color: PackedColor, transform?: Matrix3): void; traceTri(sx0: number, sy0: number, sx1: number, sy1: number, sx2: number, sy2: number, color: PackedColor, transform?: Matrix3): void; } export declare class Sprite { asset: Aseprite; frame: number; subregion: Rect; image: ImageData; constructor(asset: Aseprite, frame?: number, subregion?: Rect); static fromArrayBuffer(arrayBuffer: ArrayBuffer): Sprite; get width(): number; get height(): number; update(): void; render(screen: Surface, sx: number, sy: number, transform?: Matrix3): void; } export declare class AnimatedSprite extends Sprite { asset: Aseprite; frame: number; subregion: Rect; image: ImageData; duration: number; start: number; end: number; animation?: string; direction: AsepriteTagAnimationDirection; repeat: number; iterations: number; playing: boolean; constructor(asset: Aseprite, frame?: number, subregion?: Rect); static fromArrayBuffer(arrayBuffer: ArrayBuffer): AnimatedSprite; get width(): number; get height(): number; pause(): void; play(): void; setAnimation(animation?: string): void; update(dt?: DeltaTime): void; } export declare class SpriteSheet { asset: Aseprite; rows: number; cols: number; sprites: Sprite[]; constructor(asset: Aseprite); static fromArrayBuffer(arrayBuffer: ArrayBuffer): SpriteSheet; init(): void; update(): void; } export declare class AnimatedSpriteSheet { asset: Aseprite; rows: number; cols: number; sprites: AnimatedSprite[]; static fromArrayBuffer(arrayBuffer: ArrayBuffer): AnimatedSpriteSheet; constructor(asset: Aseprite); init(): void; update(dt?: DeltaTime): void; } export declare const blit: (source: ImageData, target: ImageData, x?: number, y?: number) => void; export declare const blitMask: (source: ImageData, target: ImageData, mask: ImageData, x?: number, y?: number) => void;