diff --git a/src/engine/Actions/Action/ScaleTo.ts b/src/engine/Actions/Action/ScaleTo.ts index 6835fbd2..17c63a5c 100644 --- a/src/engine/Actions/Action/ScaleTo.ts +++ b/src/engine/Actions/Action/ScaleTo.ts @@ -61,7 +61,7 @@ export class ScaleTo implements Action { public isComplete(): boolean { return ( this._stopped || - (Math.abs(this._tx.scale.y - this._startX) >= (this._distanceX - 0.01) && + (Math.abs(this._tx.scale.x - this._startX) >= (this._distanceX - 0.01) && Math.abs(this._tx.scale.y - this._startY) >= (this._distanceY - 0.01)) ); } diff --git a/src/spec/ActionSpec.ts b/src/spec/ActionSpec.ts index ab5e8738..96ccbf1d 100644 --- a/src/spec/ActionSpec.ts +++ b/src/spec/ActionSpec.ts @@ -1051,6 +1051,19 @@ describe('Action', () => { expect(actor.scale.x).toBe(1.5); expect(actor.scale.y).toBe(1.5); }); + + it('completes when scaling on the x-axis', () => { + expect(actor.scale.x).toBe(1); + + const scaleTo = new ex.ScaleTo(actor, 2, 1, 1, 1); + actor.actions.runAction(scaleTo); + expect(scaleTo.isComplete()).toBeFalse(); + + scene.update(engine, 1000); + expect(actor.scale.x).toBe(2); + expect(actor.scale.y).toBe(1); + expect(scaleTo.isComplete()).toBeTrue(); + }); }); describe('scaleBy', () => {