This blog post is part of a series on Phaser. Check out the first post here.

In Phaser, we have three different scenes: preload(), create(), and update(). While preload() and create() are run only once, update() is constantly called in an never-ending loop until the game ends.

In this example, we create a text object that slowly moves towards the bottom right corner of the canvas:

let text;

function create() {
 text = this.add.text(100, 100, 'test');
}

function update() {
 text.x += 1;
 text.y += 1;
}

const game = new Phaser.Game({
 width: 400,
 height: 400,
 scene: {
 create,
 update
 }
});

Note that I added let text at the top so we can reference it within both create() and update() functions.

In the update() function, I modified the values of x and y properties. You can also modify other properties, such as angle to rotate an object:

function update() {
 text.angle += 2;
}

Additionally, you can set the initial velocity of an object using the setVelocity() function:

text.setVelocity(20, 20);

Alternatively, you can use setVelocityX() and setVelocityY() to set velocity on only one axis.