@knopkem/little-game-engine-ts
Version:
LittleGameEngineTS - Tiny and Fast HTML5 Game Engine typescript port of LittleJS
91 lines (90 loc) • 5.2 kB
TypeScript
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 {};