doyouknowyou Posted October 28, 2014 Share Posted October 28, 2014 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 More sharing options...
spencerTL Posted October 28, 2014 Share Posted October 28, 2014 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 More sharing options...
Recommended Posts