retrolib
Version:
Render low-res scenes to the canvas in a retro 8-bit era style. Aseprite exported animation wrapper, scene management, sound and image management, particle support.
112 lines (111 loc) • 2.44 kB
TypeScript
/**
* Animation header section.
*/
export interface Animation {
frames: {
[key: string]: FrameValue;
};
meta: Meta;
}
/**
* Animation frame value object.
*/
export interface FrameValue {
frame: SpriteSourceSizeClass;
rotated: boolean;
trimmed: boolean;
spriteSourceSize: SpriteSourceSizeClass;
sourceSize: Size;
duration: number;
}
/**
* Animation source rect.
*/
export interface SpriteSourceSizeClass {
x: number;
y: number;
w: number;
h: number;
}
/**
* Size object.
*/
export interface Size {
w: number;
h: number;
}
/**
* Sprite metadata.
*/
export interface Meta {
app: string;
version: string;
image: string;
format: string;
size: Size;
scale: string;
frameTags: FrameTag[];
layers: Layer[];
slices: any[];
}
/**
* Sprite frame tags.
*/
export interface FrameTag {
name: string;
from: number;
to: number;
direction: string;
}
/**
* Sprite layers.
*/
export interface Layer {
name: string;
opacity: number;
blendMode: string;
}
export interface SpriteEvent {
(sprite: Aseprite): void;
}
export interface Listener {
name: string;
frameNumber: number;
fnEvent: SpriteEvent;
}
/**
* Sprite controller, a wrapper for Aseprite JSON export format.
*/
export declare class Aseprite {
name: string;
animation: Animation;
frames: {
[key: string]: FrameValue;
};
meta: Meta;
frameNumber: number;
elapsed: number;
frameElapsed: number;
direction: number;
flipX: boolean;
listeners: Listener[];
lastListenerExecuted: Listener;
constructor(name: string, animation: Animation);
CallListener(name: string, frameNumber: number): void;
GetListener(name: string, frameNumber: number): Listener;
AddListener(name: string, frameNumber: number, callback: SpriteEvent): void;
HasListener(name: string, frameNumber: number): boolean;
ClearListener(name: string, frameNumber: number): void;
Play(): void;
PlayFromStart(frameTag: string): void;
Pause(): void;
FrameId(frameNumber: number): string;
Frame(frameNumber: number): FrameValue;
FrameCount(): number;
CurrentFrameId(): string;
CurrentFrame(): FrameValue;
FrameMetaTag(frameNumber: number): FrameTag;
MetaTag(frameTag: string): FrameTag[];
Update(delta: number): void;
Draw(x: number, y: number): void;
}