UNPKG

artistic-engine

Version:

General purpose html5 canvas rendering game engine

73 lines (72 loc) 2.87 kB
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; }