UNPKG

@knopkem/little-game-engine-ts

Version:

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

91 lines (90 loc) 5.2 kB
import { EngineObject } from "./index"; import { Color, Vector2 } from "./index"; /** * Particle Emitter - Spawns particles with the given settings */ export declare class ParticleEmitter extends EngineObject { additive: any; angleSpeed: any; colorEndA: any; colorEndB: any; colorStartA: any; colorStartB: any; emitConeAngle: any; emitRate: any; emitSize: any; emitTime: any; emitTimeBuffer: any; fadeRate: any; particleConeAngle: any; particleCreateCallback: any; particleDestroyCallback: any; particleTime: any; randomColorLinear: any; randomness: any; sizeEnd: any; sizeStart: any; speed: any; trailScale: any; /** * Create a particle system with the given settings * @param {Vector2} position - World space position of the emitter * @param {Number} [emitSize=0] - World space size of the emitter (float for circle diameter, vec2 for rect) * @param {Number} [emitTime=0] - How long to stay alive (0 is forever) * @param {Number} [emitRate=100] - How many particles per second to spawn * @param {Number} [emitConeAngle=PI] - Local angle to apply velocity to particles from emitter * @param {Number} [tileIndex=-1] - Index into tile sheet, if <0 no texture is applied * @param {Number} [tileSize=defaultTileSize] - Tile size for particles * @param {Color} [colorStartA=new Color(1,1,1)] - Color at start of life 1, randomized between start colors * @param {Color} [colorStartB=new Color(1,1,1)] - Color at start of life 2, randomized between start colors * @param {Color} [colorEndA=new Color(1,1,1,0)] - Color at end of life 1, randomized between end colors * @param {Color} [colorEndB=new Color(1,1,1,0)] - Color at end of life 2, randomized between end colors * @param {Number} [particleTime=.5] - How long particles live * @param {Number} [sizeStart=.1] - How big are particles at start * @param {Number} [sizeEnd=1] - How big are particles at end * @param {Number} [speed=.1] - How fast are particles when spawned * @param {Number} [angleSpeed=.05] - How fast are particles rotating * @param {Number} [damping=1] - How much to dampen particle speed * @param {Number} [angleDamping=1] - How much to dampen particle angular speed * @param {Number} [gravityScale=0] - How much does gravity effect particles * @param {Number} [particleConeAngle=PI] - Cone for start particle angle * @param {Number} [fadeRate=.1] - How quick to fade in particles at start/end in percent of life * @param {Number} [randomness=.2] - Apply extra randomness percent * @param {Boolean} [collideTiles=0] - Do particles collide against tiles * @param {Boolean} [additive=0] - Should particles use addtive blend * @param {Boolean} [randomColorLinear=0] - Should color be randomized linearly or across each component * @param {Number} [renderOrder=0] - Render order for particles (additive is above other stuff by default) */ constructor(pos: any, emitSize: number | undefined, emitTime: number | undefined, emitRate: number | undefined, emitConeAngle: number | undefined, tileIndex: number | undefined, tileSize: Vector2 | undefined, colorStartA: Color | undefined, colorStartB: Color | undefined, colorEndA: Color | undefined, colorEndB: Color | undefined, particleTime: number | undefined, sizeStart: number | undefined, sizeEnd: number | undefined, speed: number | undefined, angleSpeed: number | undefined, damping: number | undefined, angleDamping: number | undefined, gravityScale: number | undefined, particleConeAngle: number | undefined, fadeRate: number | undefined, randomness: number | undefined, collideTiles: any, additive: any, randomColorLinear?: number, renderOrder?: number); /** Update the emitter to spawn particles, called automatically by engine once each frame */ update(): void; /** Spawn one particle * @return {Particle} */ emitParticle(): Particle; render(): void; } /** * Particle Object - Created automatically by Particle Emitters */ declare class Particle extends EngineObject { additive: any; colorEndDelta: any; colorStart: any; destroyCallback: any; fadeRate: any; lifeTime: any; sizeEndDelta: any; sizeStart: any; trailScale: any; /** * Create a particle with the given settings * @param {Vector2} position - World space position of the particle * @param {Number} [tileIndex=-1] - Tile to use to render, untextured if -1 * @param {Vector2} [tileSize=defaultTileSize] - Size of tile in source pixels * @param {Number} [angle=0] - Angle to rotate the particle */ constructor(pos: any, tileIndex: any, tileSize: any, angle: any); /** Render the particle, automatically called each frame, sorted by renderOrder */ render(): void; } export {};