Jump to content

Tween triggering


doyouknowyou
 Share

Recommended Posts

I'm triggering a tween using:

 

    highScore = game.add.tween(highScore.cameraOffset);    highScore.to({ x: worldX }, 700, Phaser.Easing.Cubic.Out);    highScore.to({ x: worldX + worldX * 2}, 700, Phaser.Easing.Cubic.Out);    highScore.to({ x: worldX - worldX * 3},1);

which tweens a 'Highscore!' message to the center of the window, off the camera, then back to the starting position.

 

Triggering the tween I have: 

 

    if (score > previousBest){        newHighScoreText();    }

Nice and simple, and it works perfectlym except if I get a new highscore whilst the tween is active, it gets retriggered, messing up the animation. Is there an easy way to execute a tween, but have it complete before it can be triggered again?

 

Thanks!

 

  

Link to comment
Share on other sites

I'd do it this way:

 

tweenInProgress is a true/false variable

  if (score > previousBest&&tweenInProgress===false){        tweenInProgress=true;        newHighScoreText();    }

Then to the tween I'd add an onComplete event to set it to false after it has completed:

    highScore = game.add.tween(highScore.cameraOffset);highScore.onComplete.add(function(){ tweenInProgress = false }, this);    highScore.to({ x: worldX }, 700, Phaser.Easing.Cubic.Out);    highScore.to({ x: worldX + worldX * 2}, 700, Phaser.Easing.Cubic.Out);    highScore.to({ x: worldX - worldX * 3},1);

Of course this means that if you want the missed tween to still go ahead after the previous one has completed you'd need to handle this separately.

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...