@dothq/littlejsengine
Version:
LittleJS - Tiny and Fast HTML5 Game Engine
426 lines (425 loc) • 17.6 kB
TypeScript
declare function engineInit(gameInit: any, gameUpdate: any, gameUpdatePost: any, gameRender: any, gameRenderPost: any, tileImageSource: any): void;
declare function engineUpdateObjects(): void;
declare function destroyAllObjects(): void;
declare function forEachObject(pos: any, size: any, callbackFunction: any, objects?: any[]): void;
declare function drawTile(pos: any, size: Vector2, tileIndex: number, tileSize: Vector2, color: Color, angle: number, mirror: any, additiveColor?: Color): void;
declare function drawRect(pos: any, size: any, color: any, angle: any): void;
declare function drawTileScreenSpace(pos: any, size: Vector2, tileIndex: any, tileSize: any, color: any, angle: any, mirror: any, additiveColor: any): void;
declare function drawRectScreenSpace(pos: any, size: any, color: any, angle: any): void;
declare function drawLine(posA: any, posB: any, thickness: number, color: any): void;
declare function drawCanvas2D(pos: any, size: any, angle: any, mirror: any, drawFunction: any, context?: any): void;
declare function drawText(text: any, pos: any, size?: number, color?: Color, lineWidth?: number, lineColor?: Color, textAlign?: string, font?: string): void;
declare function setBlendMode(additive: any): void;
declare function toggleFullscreen(): void;
declare function inputUpdate(): void;
declare function inputUpdatePost(): void;
declare function gamepadsUpdate(): void;
declare function playAudioFile(url: any, volumeScale?: number, loop?: number): HTMLAudioElement;
declare function speak(text: any, language?: string, volume?: number, rate?: number, pitch?: number): SpeechSynthesisUtterance;
declare function playSamples(sampleChannels: any, volume?: number, playbackRate?: number, pan?: number, loop?: number): any;
declare function zzfxG(volume?: number, randomness?: number, frequency?: number, attack?: number, sustain?: number, release?: number, shape?: number, shapeCurve?: number, slide?: number, deltaSlide?: number, pitchJump?: number, pitchJumpTime?: number, repeatTime?: number, noise?: number, modulation?: number, bitCrush?: number, delay?: number, sustainVolume?: number, decay?: number, tremolo?: number): number[];
declare function zzfxM(instruments: any, patterns: any, sequence: any, BPM?: number): any[][];
declare function initTileCollision(size: any): void;
declare function tileCollisionTest(pos: any, size: Vector2, object: any): number;
declare function tileCollisionRaycast(posStart: any, posEnd: any, object: any): Vector2;
declare function medalsInit(gameName: any): void;
declare function medalsRender(): void;
declare function glInit(): void;
declare function glSetBlendMode(additive: any): void;
declare function glSetTexture(texture?: any): void;
declare function glCompileShader(source: any, type: any): any;
declare function glCreateProgram(vsSource: any, fsSource: any): any;
declare function glCreateBuffer(bufferType: any, size: any, usage: any): any;
declare function glCreateTexture(image: any): any;
declare function glPreRender(width: any, height: any): void;
declare function glFlush(): void;
declare function glCopyToContext(context: any, forceDraw: any): void;
declare function glDraw(x: any, y: any, sizeX: any, sizeY: any, angle?: number, uv0X?: number, uv0Y?: number, uv1X?: number, uv1Y?: number, rgba?: number, rgbaAdditive?: number): void;
declare const debug: 1;
declare const enableAsserts: 1;
declare const debugPointSize: 0.5;
declare let showWatermark: number;
declare let godMode: number;
declare let debugPrimitives: any[];
declare let debugOverlay: number;
declare let debugPhysics: number;
declare let debugRaycast: number;
declare let debugParticles: number;
declare let debugGamepads: number;
declare let debugMedals: number;
declare let debugCanvas: number;
declare let debugTakeScreenshot: any;
declare let downloadLink: any;
declare function ASSERT(...assert: any[]): void;
declare function debugRect(pos: any, size?: Vector2, color?: string, time?: number, angle?: number, fill?: number): void;
declare function debugCircle(pos: any, radius?: number, color?: string, time?: number, fill?: number): void;
declare function debugPoint(pos: any, color: any, time: any, angle: any): void;
declare function debugLine(posA: any, posB: any, color: any, thickness: number, time: any): void;
declare function debugAABB(pA: any, pB: any, sA: any, sB: any, color: any): void;
declare function debugText(text: string, pos: any, size?: number, color?: string, time?: number, angle?: number, font?: string): void;
declare function debugClear(): any[];
declare function debugSaveCanvas(canvas: any, filename?: string): void;
declare function debugInit(): void;
declare function debugUpdate(): void;
declare function debugRender(): void;
declare let debugParticleEditor: number;
declare let debugParticleSystem: any;
declare let debugParticleSystemDiv: any;
declare let particleSystemCode: any;
declare function debugToggleParticleEditor(): void;
declare const debugParticleSettings: string[][];
declare const PI: number;
declare const isChrome: any;
declare function abs(a: any): any;
declare function sign(a: any): 1 | -1;
declare function min(a: any, b: any): any;
declare function max(a: any, b: any): any;
declare function mod(a: any, b: any): number;
declare function clamp(v: any, max?: number, min?: number): any;
declare function percent(v: any, max?: number, min?: number): any;
declare function lerp(p: any, max?: number, min?: number): number;
declare function formatTime(t: any): string;
declare function isOverlapping(pA: any, sA: any, pB: any, sB: any): number;
declare function nearestPowerOfTwo(v: any): number;
declare function wave(f?: number, a?: number, t?: number): number;
declare function smoothStep(p: any): number;
declare function rand(a?: number, b?: number): number;
declare function randInt(a?: number, b?: number): number;
declare function randSign(): number;
declare function randInCircle(radius?: number, minRadius?: number): Vector2;
declare function randVector(length?: number): Vector2;
declare function randColor(cA: Color, cB: Color, linear: any): Color;
declare let randSeed: number;
declare function randSeeded(a?: number, b?: number): number;
declare function vec2(x: number, y: any): Vector2;
declare class Vector2 {
constructor(x?: number, y?: number);
x: number;
y: number;
copy(): Vector2;
scale(s: any): Vector2;
add(v: any): Vector2;
subtract(v: any): Vector2;
multiply(v: any): Vector2;
divide(v: any): Vector2;
length(): number;
lengthSquared(): number;
distance(p: any): number;
distanceSquared(p: any): number;
normalize(length?: number): Vector2;
clampLength(length?: number): Vector2;
dot(v: any): number;
cross(v: any): number;
angle(): number;
setAngle(a: any, length?: number): Vector2;
rotate(a: any): Vector2;
direction(): 1 | 0 | 2 | 3;
flip(): Vector2;
invert(): Vector2;
round(): Vector2;
floor(): Vector2;
int(): Vector2;
lerp(v: any, p: any): Vector2;
area(): number;
arrayCheck(arraySize: any): boolean;
}
declare class Color {
constructor(r?: number, g?: number, b?: number, a?: number);
r: number;
g: number;
b: number;
a: number;
copy(c: any): Color;
add(c: any): Color;
subtract(c: any): Color;
multiply(c: any): Color;
scale(s: any, a?: any): Color;
clamp(): Color;
lerp(c: any, p: any): Color;
mutate(amount?: number, alphaAmount?: number): Color;
rgba(): string;
rgbaInt(): number;
setHSLA(h?: number, s?: number, l?: number, a?: number): Color;
}
declare class Timer {
constructor(timeLeft: any);
time: any;
setTime: any;
set(timeLeft?: number): void;
unset(): void;
isSet(): boolean;
active(): boolean;
elapsed(): boolean;
get(): number;
getPercent(): any;
}
declare const maxWidth: 1920;
declare const maxHeight: 1200;
declare let defaultFont: string;
declare let fixedWidth: number;
declare let fixedHeight: number;
declare let fixedFitToWindow: number;
declare const defaultTileSize: Vector2;
declare const tileBleedShrinkFix: 0.3;
declare let pixelated: number;
declare const glEnable: 1;
declare let glOverlay: number;
declare const defaultObjectSize: Vector2;
declare const defaultObjectMass: 1;
declare const defaultObjectDamping: 0.99;
declare const defaultObjectAngleDamping: 0.99;
declare const defaultObjectElasticity: 0;
declare const defaultObjectFriction: 0.8;
declare const maxObjectSpeed: 1;
declare const gamepadsEnable: 1;
declare const touchInputEnable: 1;
declare const copyGamepadDirectionToStick: 1;
declare const copyWASDToDpad: 1;
declare const soundEnable: 1;
declare let audioVolume: number;
declare const defaultSoundRange: 30;
declare const defaultSoundTaper: 0.7;
declare const medalDisplayTime: 5;
declare const medalDisplaySlideTime: 0.5;
declare const medalDisplayWidth: 640;
declare const medalDisplayHeight: 99;
declare const medalDisplayIconSize: 80;
declare const engineName: "LittleJS";
declare const engineVersion: "1.0.16";
declare const FPS: 60;
declare const timeDelta: number;
declare const tileImage: HTMLImageElement;
declare let mainCanvas: any;
declare let mainContext: any;
declare let overlayCanvas: any;
declare let overlayContext: any;
declare let mainCanvasSize: Vector2;
declare let engineObjects: any[];
declare let engineCollideObjects: any[];
declare let cameraPos: Vector2;
declare let cameraScale: any;
declare let frame: number;
declare let time: number;
declare let realTime: number;
declare let paused: number;
declare let frameTimeLastMS: number;
declare let frameTimeBufferMS: number;
declare let debugFPS: number;
declare let gravity: number;
declare let tileImageSize: any;
declare let tileImageSizeInverse: any;
declare let shrinkTilesX: any;
declare let shrinkTilesY: any;
declare let drawCount: any;
declare class EngineObject {
constructor(pos: any, size: Vector2, tileIndex: number, tileSize: Vector2, angle: number, color: any);
pos: any;
size: Vector2;
tileIndex: number;
tileSize: Vector2;
angle: number;
color: any;
mass: number;
damping: number;
angleDamping: number;
elasticity: number;
friction: number;
spawnTime: number;
velocity: Vector2;
collideSolidObjects: number;
renderOrder: number;
angleVelocity: number;
collideTiles: number;
gravityScale: number;
children: any[];
update(): void;
groundObject: any;
render(): void;
destroy(): void;
destroyed: number;
collideWithTile(data: any, pos: any): boolean;
collideWithTileRaycast(data: any, pos: any): boolean;
collideWithObject(o: any): number;
getAliveTime(): number;
applyAcceleration(a: any): void;
applyForce(force: any): void;
isFixed(): boolean;
getMirrorSign(s?: number): number;
addChild(child: any, localPos?: Vector2, localAngle?: number): void;
removeChild(child: any): void;
setCollision(collideSolidObjects: any, isSolid: any, collideTiles?: number): void;
isSolid: any;
}
declare function screenToWorld(screenPos: any): any;
declare function worldToScreen(worldPos: any): any;
declare function isFullscreen(): Element;
declare let hadInput: number;
declare function keyIsDown(key: any, device?: number): 1 | 0;
declare function keyWasPressed(key: any, device?: number): 1 | 0;
declare function keyWasReleased(key: any, device?: number): 1 | 0;
declare function clearInput(): any[];
declare function mouseIsDown(key: any, device?: number): 1 | 0;
declare function mouseWasPressed(key: any, device?: number): 1 | 0;
declare function mouseWasReleased(key: any, device?: number): 1 | 0;
declare let mousePos: Vector2;
declare let mousePosScreen: Vector2;
declare let mouseWheel: number;
declare let usingGamepad: number;
declare function gamepadIsDown(button: any, gamepad?: number): 1 | 0;
declare function gamepadWasPressed(button: any, gamepad?: number): 1 | 0;
declare function gamepadWasReleased(button: any, gamepad?: number): 1 | 0;
declare function gamepadStick(stick: any, gamepad?: number): any;
declare const inputData: any[][];
declare function remapKeyCode(c: any): any;
declare let stickData: any[];
declare const isTouchDevice: boolean;
declare class Sound {
constructor(zzfxSound: any, range?: number, taper?: number);
range: number;
taper: number;
randomness: any;
cachedSamples: number[];
play(pos: any, volumeScale?: number, pitchScale?: number): any;
}
declare class Music {
constructor(zzfxMusic: any);
cachedSamples: any[][];
play(volumeScale?: number, loop?: number): any;
}
declare function stopSpeech(): void;
declare let audioContext: any;
declare const zzfxR: 44100;
declare function zzfx(...z: any[]): any;
declare let tileCollision: any[];
declare let tileCollisionSize: Vector2;
declare let tileLayerCanvasCache: any[];
declare function setTileCollisionData(pos: any, data?: number): number;
declare function getTileCollisionData(pos: any): any;
declare class TileLayerData {
constructor(tile?: number, direction?: number, mirror?: number, color?: Color);
tile: number;
direction: number;
mirror: number;
color: Color;
clear(): void;
}
declare class TileLayer extends EngineObject {
constructor(pos: any, size: any, scale?: Vector2, layer?: number);
canvas: any;
context: any;
scale: Vector2;
layer: number;
flushGLBeforeRender: number;
data: TileLayerData[];
setData(layerPos: any, data: any, redraw: any): void;
getData(layerPos: any): TileLayerData;
redraw(): void;
redrawStart(clear?: number): void;
savedRenderSettings: any[];
redrawEnd(): void;
drawTileData(layerPos: any): void;
drawAllTileData(): void;
drawCanvas2D(pos: any, size: any, angle: any, mirror: any, drawFunction: any): void;
drawTile(pos: any, size: Vector2, tileIndex: number, tileSize: Vector2, color: Color, angle: number, mirror: any): void;
drawRect(pos: any, size: any, color: any, angle: any): void;
}
declare class ParticleEmitter extends EngineObject {
constructor(pos: any, emitSize: number, emitTime: number, emitRate: number, emitConeAngle: number, tileIndex: number, tileSize: Vector2, colorStartA: Color, colorStartB: Color, colorEndA: Color, colorEndB: Color, particleTime: number, sizeStart: number, sizeEnd: number, speed: number, angleSpeed: number, damping: number, angleDamping: number, gravityScale: number, particleConeAngle: number, fadeRate: number, randomness: number, collideTiles: any, additive: any, randomColorLinear?: number, renderOrder?: number);
emitSize: number;
emitTime: number;
emitRate: number;
emitConeAngle: number;
colorStartA: Color;
colorStartB: Color;
colorEndA: Color;
colorEndB: Color;
randomColorLinear: number;
particleTime: number;
sizeStart: number;
sizeEnd: number;
speed: number;
angleSpeed: number;
particleConeAngle: number;
fadeRate: number;
randomness: number;
additive: any;
trailScale: number;
emitTimeBuffer: number;
emitParticle(): Particle;
}
declare class Particle extends EngineObject {
constructor(pos: any, tileIndex: any, tileSize: any, angle: any);
}
declare let medals: any[];
declare let medalsDisplayQueue: any[];
declare let medalsGameName: any;
declare let medalsPreventUnlock: any;
declare let medalsDisplayTimer: any;
declare let newgrounds: any;
declare class Medal {
constructor(id: any, name: any, description: string, icon: string, src: any);
id: any;
name: any;
description: string;
icon: string;
image: HTMLImageElement;
unlock(): void;
unlocked: number;
storageKey(): string;
render(hidePercent?: number): void;
renderIcon(x: any, y: any, size?: number): void;
}
declare class Newgrounds {
constructor(app_id: any, cipher: any);
app_id: any;
cipher: any;
host: string;
cryptoJS: any;
session_id: string | number;
medals: any;
scoreboards: any;
unlockMedal(id: any): any;
postScore(id: any, value: any): any;
logView(): any;
getScores(id: any, user?: number, social?: number, skip?: number, limit?: number): any;
call(component: any, parameters?: number, async?: number): any;
encryptCall(call: any): any;
}
declare function CryptoJS(): any;
declare let glCanvas: any;
declare let glContext: any;
declare let glTileTexture: any;
declare let glActiveTexture: any;
declare let glShader: any;
declare let glPositionData: any;
declare let glColorData: any;
declare let glBatchCount: any;
declare let glDirty: any;
declare let glAdditive: any;
declare const gl_ONE: 1;
declare const gl_TRIANGLES: 4;
declare const gl_SRC_ALPHA: 770;
declare const gl_ONE_MINUS_SRC_ALPHA: 771;
declare const gl_BLEND: 3042;
declare const gl_TEXTURE_2D: 3553;
declare const gl_UNSIGNED_BYTE: 5121;
declare const gl_FLOAT: 5126;
declare const gl_RGBA: 6408;
declare const gl_NEAREST: 9728;
declare const gl_LINEAR: 9729;
declare const gl_TEXTURE_MAG_FILTER: 10240;
declare const gl_TEXTURE_MIN_FILTER: 10241;
declare const gl_TEXTURE_WRAP_S: 10242;
declare const gl_TEXTURE_WRAP_T: 10243;
declare const gl_COLOR_BUFFER_BIT: 16384;
declare const gl_CLAMP_TO_EDGE: 33071;
declare const gl_ARRAY_BUFFER: 34962;
declare const gl_DYNAMIC_DRAW: 35048;
declare const gl_FRAGMENT_SHADER: 35632;
declare const gl_VERTEX_SHADER: 35633;
declare const gl_COMPILE_STATUS: 35713;
declare const gl_LINK_STATUS: 35714;
declare const gl_VERTICES_PER_QUAD: 6;
declare const gl_INDICIES_PER_VERT: 9;
declare const gl_MAX_BATCH: number;
declare const gl_VERTEX_BYTE_STRIDE: number;