Build games as easily as you play them — join the Phaser Beam waitlist for Early Access.
class Example extends Phaser.Scene { constructor () { super(); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v385'); this.load.image('bg', 'assets/skies/pixelsky.png'); this.load.atlas('ui', 'assets/ui/nine-slice.png', 'assets/ui/nine-slice.json'); } create () { this.add.image(400, 300, 'bg'); this.add.nineslice(400, 200, 'ui', 'RedButtonSml', 640, 98, 64, 64, 48, 48); const score = this.add.text(400, 200, 'Score: 0', { font: '64px Courier', fill: '#ffffff' }).setOrigin(0.5, 0.5); const button = this.add.nineslice(400, 500, 'ui', 'GreenButtonSml', 300, 98, 64, 64, 48, 48); this.add.text(400, 500, 'Add 500 to Score', { font: '24px Arial', fill: '#ffffff' }).setOrigin(0.5, 0.5); button.setInteractive(); let currentScore = 0; let newScore = 500; let updateTween = this.tweens.addCounter({ from: currentScore, to: newScore, duration: 2000, ease: 'linear', onUpdate: tween => { const value = Math.round(tween.getValue()); score.setText(`Score: ${value}`); } }); button.on('pointerdown', () => { currentScore = newScore; newScore += 500; if (updateTween.isPlaying()) { // The tween is already running, so we'll update the end value with resetting it updateTween.updateTo('value', newScore); } else { // The tween has finished, so create a new one updateTween = this.tweens.addCounter({ from: currentScore, to: newScore, duration: 2000, ease: 'linear', onUpdate: tween => { const value = Math.round(tween.getValue()); score.setText(`Score: ${value}`); } }); } }); } } const config = { type: Phaser.AUTO, width: 800, height: 600, backgroundColor: '#2d2d2d', parent: 'phaser-example', scene: Example }; const game = new Phaser.Game(config);
class Example extends Phaser.Scene
{
constructor ()
{
super();
}
preload ()
{
this.load.setBaseURL('https://cdn.phaserfiles.com/v385');
this.load.image('bg', 'assets/skies/pixelsky.png');
this.load.atlas('ui', 'assets/ui/nine-slice.png', 'assets/ui/nine-slice.json');
}
create ()
{
this.add.image(400, 300, 'bg');
this.add.nineslice(400, 200, 'ui', 'RedButtonSml', 640, 98, 64, 64, 48, 48);
const score = this.add.text(400, 200, 'Score: 0', { font: '64px Courier', fill: '#ffffff' }).setOrigin(0.5, 0.5);
const button = this.add.nineslice(400, 500, 'ui', 'GreenButtonSml', 300, 98, 64, 64, 48, 48);
this.add.text(400, 500, 'Add 500 to Score', { font: '24px Arial', fill: '#ffffff' }).setOrigin(0.5, 0.5);
button.setInteractive();
let currentScore = 0;
let newScore = 500;
let updateTween = this.tweens.addCounter({
from: currentScore,
to: newScore,
duration: 2000,
ease: 'linear',
onUpdate: tween =>
{
const value = Math.round(tween.getValue());
score.setText(`Score: ${value}`);
}
});
button.on('pointerdown', () => {
currentScore = newScore;
newScore += 500;
if (updateTween.isPlaying())
{
// The tween is already running, so we'll update the end value with resetting it
updateTween.updateTo('value', newScore);
}
else
{
// The tween has finished, so create a new one
updateTween = this.tweens.addCounter({
from: currentScore,
to: newScore,
duration: 2000,
ease: 'linear',
onUpdate: tween =>
{
const value = Math.round(tween.getValue());
score.setText(`Score: ${value}`);
}
});
}
});
}
}
const config = {
type: Phaser.AUTO,
width: 800,
height: 600,
backgroundColor: '#2d2d2d',
parent: 'phaser-example',
scene: Example
};
const game = new Phaser.Game(config);