Build games as easily as you play them — join the Phaser Beam waitlist for Early Access.
class MainScene extends Phaser.Scene { constructor () { super('MainScene'); this.pad = null; this.sprite = null; } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v385'); this.load.image('sky', 'assets/skies/lightblue.png'); this.load.image('elephant', 'assets/sprites/elephant.png'); this.load.image('truck1', 'assets/sprites/alienbusters.png'); this.load.image('truck2', 'assets/sprites/astorm-truck.png'); } create () { this.add.image(0, 0, 'sky').setOrigin(0); var text = this.add.text(10, 10, 'Press any button on a connected Gamepad', { font: '16px Courier', fill: '#ffffff' }); if (this.input.gamepad.total === 0) { this.input.gamepad.once('connected', pad => { this.pad = pad; this.sprite = this.add.image(400, 300, 'elephant'); text.setText('Main Scene. Press Button 0 to change Scene'); pad.on('down', (index, value, button) => { if (index === 0) { console.log('M to A'); this.scene.start('SceneA'); } }); }); } else { this.pad = this.input.gamepad.pad1; this.sprite = this.add.image(400, 300, 'elephant'); text.setText('Main Scene. Press Button 0 to change Scene'); this.pad.on('down', (index, value, button) => { if (index === 0) { console.log('M to A'); this.scene.start('SceneA'); } }); } } update () { const pad = this.pad; if (!pad) { return; } const sprite = this.sprite; if (pad.left) { sprite.x -= 4; sprite.flipX = false; } else if (pad.right) { sprite.x += 4; sprite.flipX = true; } if (pad.up) { sprite.y -= 4; } else if (pad.down) { sprite.y += 4; } } } class SceneA extends Phaser.Scene { constructor () { super('SceneA'); this.pad = null; this.sprite = null; } create () { this.add.image(0, 0, 'sky').setOrigin(0); this.add.text(10, 10, 'Scene A. Press Button 0 to change Scene.', { font: '16px Courier', fill: '#ffffff' }); this.pad = this.input.gamepad.pad1; this.sprite = this.add.image(400, 300, 'truck1'); this.pad.on('down', (index, value, button) => { if (index === 0) { console.log('A to B'); this.scene.start('SceneB'); } }); } update () { const pad = this.pad; if (!pad) { return; } const sprite = this.sprite; if (pad.left) { sprite.x -= 4; sprite.flipX = true; } else if (pad.right) { sprite.x += 4; sprite.flipX = false; } if (pad.up) { sprite.y -= 4; } else if (pad.down) { sprite.y += 4; } } } class SceneB extends Phaser.Scene { constructor () { super('SceneB'); this.pad = null; this.sprite = null; } create () { this.add.image(0, 0, 'sky').setOrigin(0); this.add.text(10, 10, 'Scene B. Press Button 0 to change Scene.', { font: '16px Courier', fill: '#ffffff' }); this.pad = this.input.gamepad.pad1; this.sprite = this.add.image(400, 300, 'truck2'); this.pad.on('down', (index, value, button) => { if (index === 0) { console.log('B to M'); this.scene.start('MainScene'); } }); } update () { const pad = this.pad; if (!pad) { return; } const sprite = this.sprite; if (pad.left) { sprite.x -= 4; sprite.flipX = true; } else if (pad.right) { sprite.x += 4; sprite.flipX = false; } if (pad.up) { sprite.y -= 4; } else if (pad.down) { sprite.y += 4; } } } const config = { type: Phaser.AUTO, parent: 'phaser-example', width: 800, height: 600, input: { gamepad: true }, scene: [ MainScene, SceneA, SceneB ] }; const game = new Phaser.Game(config);
class MainScene extends Phaser.Scene {
constructor ()
{
super('MainScene');
this.pad = null;
this.sprite = null;
}
preload ()
{
this.load.setBaseURL('https://cdn.phaserfiles.com/v385');
this.load.image('sky', 'assets/skies/lightblue.png');
this.load.image('elephant', 'assets/sprites/elephant.png');
this.load.image('truck1', 'assets/sprites/alienbusters.png');
this.load.image('truck2', 'assets/sprites/astorm-truck.png');
}
create ()
{
this.add.image(0, 0, 'sky').setOrigin(0);
var text = this.add.text(10, 10, 'Press any button on a connected Gamepad', { font: '16px Courier', fill: '#ffffff' });
if (this.input.gamepad.total === 0)
{
this.input.gamepad.once('connected', pad => {
this.pad = pad;
this.sprite = this.add.image(400, 300, 'elephant');
text.setText('Main Scene. Press Button 0 to change Scene');
pad.on('down', (index, value, button) => {
if (index === 0)
{
console.log('M to A');
this.scene.start('SceneA');
}
});
});
}
else
{
this.pad = this.input.gamepad.pad1;
this.sprite = this.add.image(400, 300, 'elephant');
text.setText('Main Scene. Press Button 0 to change Scene');
this.pad.on('down', (index, value, button) => {
if (index === 0)
{
console.log('M to A');
this.scene.start('SceneA');
}
});
}
}
update ()
{
const pad = this.pad;
if (!pad)
{
return;
}
const sprite = this.sprite;
if (pad.left)
{
sprite.x -= 4;
sprite.flipX = false;
}
else if (pad.right)
{
sprite.x += 4;
sprite.flipX = true;
}
if (pad.up)
{
sprite.y -= 4;
}
else if (pad.down)
{
sprite.y += 4;
}
}
}
class SceneA extends Phaser.Scene {
constructor ()
{
super('SceneA');
this.pad = null;
this.sprite = null;
}
create ()
{
this.add.image(0, 0, 'sky').setOrigin(0);
this.add.text(10, 10, 'Scene A. Press Button 0 to change Scene.', { font: '16px Courier', fill: '#ffffff' });
this.pad = this.input.gamepad.pad1;
this.sprite = this.add.image(400, 300, 'truck1');
this.pad.on('down', (index, value, button) => {
if (index === 0)
{
console.log('A to B');
this.scene.start('SceneB');
}
});
}
update ()
{
const pad = this.pad;
if (!pad)
{
return;
}
const sprite = this.sprite;
if (pad.left)
{
sprite.x -= 4;
sprite.flipX = true;
}
else if (pad.right)
{
sprite.x += 4;
sprite.flipX = false;
}
if (pad.up)
{
sprite.y -= 4;
}
else if (pad.down)
{
sprite.y += 4;
}
}
}
class SceneB extends Phaser.Scene {
constructor ()
{
super('SceneB');
this.pad = null;
this.sprite = null;
}
create ()
{
this.add.image(0, 0, 'sky').setOrigin(0);
this.add.text(10, 10, 'Scene B. Press Button 0 to change Scene.', { font: '16px Courier', fill: '#ffffff' });
this.pad = this.input.gamepad.pad1;
this.sprite = this.add.image(400, 300, 'truck2');
this.pad.on('down', (index, value, button) => {
if (index === 0)
{
console.log('B to M');
this.scene.start('MainScene');
}
});
}
update ()
{
const pad = this.pad;
if (!pad)
{
return;
}
const sprite = this.sprite;
if (pad.left)
{
sprite.x -= 4;
sprite.flipX = true;
}
else if (pad.right)
{
sprite.x += 4;
sprite.flipX = false;
}
if (pad.up)
{
sprite.y -= 4;
}
else if (pad.down)
{
sprite.y += 4;
}
}
}
const config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600,
input: {
gamepad: true
},
scene: [ MainScene, SceneA, SceneB ]
};
const game = new Phaser.Game(config);