UNPKG

@knopkem/little-game-engine-ts

Version:

LittleGameEngineTS - Tiny and Fast HTML5 Game Engine typescript port of LittleJS

122 lines (121 loc) 5.87 kB
import { Color, Vector2 } from "./index"; /** * LittleJS Drawing System * <br> - Hybrid with both Canvas2D and WebGL available * <br> - Super fast tile sheet rendering with WebGL * <br> - Can apply rotation, mirror, color and additive color * <br> - Many useful utility functions * @namespace Draw */ /** Main tilesheet to use for batch rendering system * @type {Image} * @memberof Draw */ export declare const tileImage: HTMLImageElement; /** The primary 2D canvas visible to the user * @type {HTMLCanvasElement} * @memberof Draw */ export declare let mainCanvas: HTMLCanvasElement; export declare function setMainCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement; /** 2d context for mainCanvas * @type {CanvasRenderingContext2D} * @memberof Draw */ export declare let mainContext: CanvasRenderingContext2D; export declare function setMainContext(context: CanvasRenderingContext2D | null): CanvasRenderingContext2D; /** A canvas that appears on top of everything the same size as mainCanvas * @type {HTMLCanvasElement} * @memberof Draw */ export declare let overlayCanvas: HTMLCanvasElement; export declare function setOverlayCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement; /** 2d context for overlayCanvas * @type {CanvasRenderingContext2D} * @memberof Draw */ export declare let overlayContext: CanvasRenderingContext2D; export declare function setOverlayContext(context: CanvasRenderingContext2D | null): CanvasRenderingContext2D; /** The size of the main canvas (and other secondary canvases: overlayCanvas and glCanvas) * @type {Vector2} * @memberof Draw */ export declare let mainCanvasSize: Vector2; export declare function setMainCanvasSize(size: Vector2): Vector2; /** Convert from screen to world space coordinates * @param {Vector2} screenPos * @return {Vector2} * @memberof Draw */ export declare const screenToWorld: (screenPos: any) => any; /** Convert from world to screen space coordinates * @param {Vector2} worldPos * @return {Vector2} * @memberof Draw */ export declare const worldToScreen: (worldPos: any) => any; /** Draw textured tile centered on pos * @param {Vector2} pos - Center of the tile * @param {Vector2} [size=new Vector2(1,1)] - Size of the tile * @param {Number} [tileIndex=-1] - Tile index to use, negative is untextured * @param {Vector2} [tileSize=defaultTileSize] - Tile size in source pixels * @param {Color} [color=new Color(1,1,1)] * @param {Number} [angle=0] * @param {Boolean} [mirror=0] * @param {Color} [additiveColor=new Color(0,0,0,0)] * @memberof Draw */ export declare function drawTile(pos: any, size: Vector2 | undefined, tileIndex: number | undefined, tileSize: Vector2 | undefined, color: Color | undefined, angle: number | undefined, mirror: any, additiveColor?: Color): void; /** Draw colored untextured rect centered on pos * @param {Vector2} pos * @param {Vector2} [size=new Vector2(1,1)] * @param {Color} [color=new Color(1,1,1)] * @param {Number} [angle=0] * @memberof Draw */ export declare function drawRect(pos: any, size: any, color: any, angle: any): void; /** Draw textured tile centered on pos in screen space * @param {Vector2} pos - Center of the tile * @param {Vector2} [size=new Vector2(1,1)] - Size of the tile * @param {Number} [tileIndex=-1] - Tile index to use, negative is untextured * @param {Vector2} [tileSize=defaultTileSize] - Tile size in source pixels * @param {Color} [color=new Color] * @param {Number} [angle=0] * @param {Boolean} [mirror=0] * @param {Color} [additiveColor=new Color(0,0,0,0)] * @memberof Draw */ export declare function drawTileScreenSpace(pos: any, size: Vector2 | undefined, tileIndex: any, tileSize: any, color: any, angle: any, mirror: any, additiveColor: any): void; /** Draw colored untextured rectangle in screen space * @param {Vector2} pos * @param {Vector2} [size=new Vector2(1,1)] * @param {Color} [color=new Color(1,1,1)] * @param {Number} [angle=0] * @memberof Draw */ export declare function drawRectScreenSpace(pos: any, size: any, color: any, angle: any): void; /** Draw colored line between two points * @param {Vector2} posA * @param {Vector2} posB * @param {Number} [thickness=.1] * @param {Color} [color=new Color(1,1,1)] * @memberof Draw */ export declare function drawLine(posA: any, posB: any, thickness: number | undefined, color: any): void; /** Draw directly to a 2d canvas context in world space (bipass webgl) * @param {Vector2} pos * @param {Vector2} size * @param {Number} angle * @param {Boolean} mirror * @param {Function} drawFunction * @param {CanvasRenderingContext2D} [context=mainContext] * @memberof Draw */ export declare function drawCanvas2D(pos: any, size: any, angle: any, mirror: any, drawFunction: any, context?: CanvasRenderingContext2D): void; /** Draw text on overlay canvas in world space * @param {String} text * @param {Vector2} pos * @param {Number} [size=1] * @param {Color} [color=new Color(1,1,1)] * @param {Number} [lineWidth=0] * @param {Color} [lineColor=new Color(0,0,0)] * @param {String} [textAlign='center'] * @memberof Draw */ export declare function drawText(text: any, pos: any, size?: number, color?: Color, lineWidth?: number, lineColor?: Color, textAlign?: string, font?: string): void; /** Enable additive or regular blend mode * @param {Boolean} [additive=0] * @memberof Draw */ export declare function setBlendMode(additive: any): void; /** Returns true if fullscreen mode is active * @return {Boolean} * @memberof Draw */ export declare const isFullscreen: () => Element | null; /** Toggle fullsceen mode * @memberof Draw */ export declare function toggleFullscreen(): void;