Passer au contenu principal

Émetteur de particules

Description

Ce composant permet à une entité d'émettre des particules.

Propriétés

PropriétéTypeDéfautDescription
arrêtébooléenfauxÉtat de lecture de l'émetteur
émetteurVienombre0Durée de vie de l'émetteur en secondes
particulesPerShotentier20Particules par émission
emitDelaynombre0.1Le temps entre les émissions de particules
durée de vie minimalenombre1Durée de vie minimale pour chaque particule
durée de vie maximalenombre1Durée de vie maximale de chaque particule
massenombre1Masse de chaque particule
graviténombre0.2Facteur de gravité de chaque particule
échellenombre0.2Échelle uniforme de chaque particule
forceXnombre5Force appliquée à chaque particule dans la direction X
forceYnombre12Force appliquée à chaque particule dans la direction Y
forceZnombre5Force appliquée à chaque particule dans la direction Z
se propagernombre360Zone et direction d'apparition de chaque particule par rapport à son origine
vitesse radialenombre5Quantité de vitesse radiale appliquée à chaque particule
spawnAreaTypechaîne de caractèrespointLes types pris en charge sont les suivants : "point", "boîte" et "sphère".
Largeur de la zone d'entraînementnombre0Largeur de la boîte de la zone de frai (boîte uniquement)
Hauteur de la zone d'entraînementnombre0Hauteur de la boîte de la zone de spawn (boîte uniquement)
Profondeur de la zone d'entraînementnombre0Profondeur de la boîte de la zone de frai (boîte uniquement)
spawnAreaRadiusnombre0Rayon de la sphère de la zone de spawn (sphère uniquement)
boundingZoneTypechaîne de caractèresaucunLes types pris en charge sont les suivants : "aucun", "boîte", "sphère".
largeur de la zone de délimitationnombre0Largeur de la zone de délimitation (boîte uniquement)
hauteur de la zone de délimitation (boundingZoneHeight)nombre0Hauteur de la zone de délimitation (boîte uniquement)
profondeur de la zone de délimitationnombre0Profondeur de la zone de délimitation (boîte uniquement)
rayon de la zone de délimitationnombre0Rayon de la zone de délimitation (sphère uniquement)
type de ressourcechaîne de caractères'sprite'Les types pris en charge sont : "sprite" et "modèle
ressourceUrlchaîne de caractères (URL)''URL de la ressource
blendingModechaîne de caractèresaucunLes types pris en charge sont les suivants : "aucun", "normal", "ajouter", "multiplier" et "soustraire".
animerCouleurbooléenfauxDétermine si la couleur doit être animée
colorStartchaîne de caractères (Hex)indéfiniLa couleur de départ de chaque particule
colorEndchaîne de caractères (Hex)indéfiniLa couleur finale de chaque particule
dérive aléatoirebooléenfauxActiver la dérive aléatoire pour chaque particule
randomDriftRangenombreindéfiniDétermine la distance de dérive aléatoire et la vitesse de chaque particule.
collisionsbooléenfauxDétermine si les particules doivent réagir aux collisions physiques

Fonctions

Get

Returns a read-only reference.

Example

ecs.ParticleEmitter.get(world, component.eid)

Set

Ensures the component exists on the entity, then assigns the (optional) data to the component.

Example

ecs.ParticleEmitter.set(world, component.eid, {
stopped: false,
emitterLife: 0,
particlesPerShot: 20,
emitDelay: 0.1,
minimumLifespan: 1,
maximumLifespan: 1,
mass: 1,
gravity: 0.2,
scale: 0.2,
forceX: 5,
forceY: 12,
forceZ: 5,
spread: 360
})

Mutate

Perform an update to the component within a callback function. Return true to indicate no changes made.

Example

ecs.ParticleEmitter.mutate(world, component.eid, (cursor) => {
cursor.emitDelay = 0.05 ;
cursor.particlesPerShot = 50 ;
return false;
})

Remove

Removes the component from the entity.

Example

ecs.ParticleEmitter.remove(world, component.eid)

Has

Returns true if the component is present on the entity.

Example

ecs.ParticleEmitter.has(world, component.eid)

Reset

Adds, or resets the component to its default state.

Example

ecs.ParticleEmitter.reset(world, component.eid)

Advanced Functions

Cursor

Returns a mutable reference. Cursors are reused so only one cursor for each component can exist at a time.

Example
ecs.ParticleEmitter.cursor(world, component.eid)

Acquire

Same behavior as cursor, but commit must be called after the cursor is done being used.

Example
ecs.ParticleEmitter.acquire(world, component.eid)

Commit

Called after acquire. An optional third argument determines whether the cursor was mutated or not.

Example
ecs.ParticleEmitter.commit(world, component.eid)
ecs.ParticleEmitter.commit(world, component.eid, false)

Dirty

Mark the entity as having been mutated. Only needed in a specific case where systems are mutating data.

Example
ecs.ParticleEmitter.dirty(world, component.eid)