artistic-engine
Version:
General purpose html5 canvas rendering game engine
73 lines (72 loc) • 2.87 kB
TypeScript
import { Entity } from "../entity";
import { Transform } from "../transform";
import IDrawable from "./idrawable";
export default abstract class Sprite extends Entity implements IDrawable {
protected contextMutator: boolean;
private region;
private transform;
private opacity;
/**
* Getter property for transform.
* @returns The matrix transform applied to this sprite.
*/
get Transform(): Transform;
/**
* Getter property for region.
* @returns The drawing region this sprite is indicating. Sprites are clipped by their region.
* @see [CanvasRenderingContext2D#clip](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/clip)
*/
get Region(): (() => Path2D) | undefined;
/**
* Getter property for sprite opacity.
* @returns Theopacity this sprite is drawn.
*/
get Opacity(): number;
private get needsTransform();
private get hasRegion();
private get hasOpacity();
/**
* Setter property for transform.
*/
set Transform(transform: Transform);
/**
* Setter property for region.
*/
set Region(region: (() => Path2D) | undefined);
/**
* Setter property for opacity.
*/
set Opacity(opacity: number);
/**
* @inheritdoc
*/
readonly draw: (context: CanvasRenderingContext2D, delay: number) => void;
/**
* Pre-clip tasks performed for canvas context reset.
* this method is called automatically by engine if attached.
* @param context Canvas context to perform reset on.
* @param delay time in milliseconds passed from the previous frame call.
*/
beforeClip(context: CanvasRenderingContext2D, delay: number): void;
/**
* Post-restore tasks performed for canvas context restore.
* this method is called automatically by engine if attached.
* @param context Canvas context to perform reset on.
* @param delay time in milliseconds passed from the previous frame call.
*/
afterRestore(context: CanvasRenderingContext2D, delay: number): void;
/**
* Post-children tasks performed for canvas context restore.
* this method is called automatically by engine if attached.
* @param context Canvas context to perform reset on.
* @param delay time in milliseconds passed from the previous frame call.
*/
afterChildren(context: CanvasRenderingContext2D, delay: number): void;
/**
* Render tasks performed for canvas context.
* this method is called automatically by engine if attached.
* @param context Canvas context to perform reset on.
* @param delay time in milliseconds passed from the previous frame call.
*/
abstract onDraw(context: CanvasRenderingContext2D, delay: number): void;
}