Make particle animation state optional

This commit is contained in:
samme 2024-10-23 14:33:11 -07:00
parent c78b3a007d
commit fbdfdb884c
2 changed files with 20 additions and 4 deletions

View file

@ -330,11 +330,19 @@ var Particle = new Class({
* It is responsible for playing, loading, queuing animations for later playback,
* mixing between animations and setting the current animation frame to this Particle.
*
* It is created only if the Particle's Emitter has at least one Animation.
*
* @name Phaser.GameObjects.Particles.Particle#anims
* @type {Phaser.Animations.AnimationState}
* @type {?Phaser.Animations.AnimationState}
* @since 3.60.0
* @see Phaser.GameObjects.Particles.ParticleEmitter#setAnim
*/
this.anims = null;
if (this.emitter.anims.length > 0)
{
this.anims = new AnimationState(this);
}
/**
* A rectangle that holds the bounds of this Particle after a call to
@ -590,7 +598,10 @@ var Particle = new Class({
return false;
}
if (this.anims)
{
this.anims.update(0, delta);
}
var emitter = this.emitter;
var ops = emitter.ops;
@ -782,8 +793,11 @@ var Particle = new Class({
* @since 3.60.0
*/
destroy: function ()
{
if (this.anims)
{
this.anims.destroy();
}
this.anims = null;
this.emitter = null;

View file

@ -1377,6 +1377,8 @@ var ParticleEmitter = new Class({
* anim: [ 'red', 'green', 'blue', 'pink', 'white' ]
* anim: { anims: [ 'red', 'green', 'blue', 'pink', 'white' ], [cycle: bool], [quantity: int] }
*
* Call this method at least once before any particles are created, or set `anim` in the Particle Emitter's configuration when creating the Emitter.
*
* @method Phaser.GameObjects.Particles.ParticleEmitter#setAnim
* @since 3.60.0
*