Build games as easily as you play them — join the Phaser Beam waitlist for Early Access.
class MoveSpritePlugin extends Phaser.Plugins.BasePlugin { constructor (pluginManager) { super(pluginManager); this.sprite; } init () { console.log('init'); } start () { console.log('start'); var eventEmitter = this.game.events; eventEmitter.on('step', this.update, this); } stop () { console.log('stop'); var eventEmitter = this.game.events; eventEmitter.off('step', this.update); } setSprite (sprite) { this.sprite = sprite; } update (time, delta) { if (this.sprite) { this.sprite.x -= 0.2 * delta; if (this.sprite.x < 0) { this.sprite.x = 800; } } } } const config = { type: Phaser.AUTO, parent: 'phaser-example', width: 800, height: 600, plugins: { global: [ { key: 'MoveSpritePlugin', plugin: MoveSpritePlugin, start: true } ] }, scene: { preload: preload, create: create } }; let game = new Phaser.Game(config); function preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v355'); this.load.image('elephant', 'assets/sprites/elephant.png'); } function create () { let ele = this.add.image(400, 300, 'elephant'); let plugin = this.plugins.get('MoveSpritePlugin'); plugin.setSprite(ele); this.input.on('pointerup', function (pointer) { if (this.plugins.isActive('MoveSpritePlugin')) { this.plugins.stop('MoveSpritePlugin'); } else { this.plugins.start('MoveSpritePlugin'); } }, this); }
class MoveSpritePlugin extends Phaser.Plugins.BasePlugin {
constructor (pluginManager)
{
super(pluginManager);
this.sprite;
}
init ()
{
console.log('init');
}
start ()
{
console.log('start');
var eventEmitter = this.game.events;
eventEmitter.on('step', this.update, this);
}
stop ()
{
console.log('stop');
var eventEmitter = this.game.events;
eventEmitter.off('step', this.update);
}
setSprite (sprite)
{
this.sprite = sprite;
}
update (time, delta)
{
if (this.sprite)
{
this.sprite.x -= 0.2 * delta;
if (this.sprite.x < 0)
{
this.sprite.x = 800;
}
}
}
}
const config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600,
plugins: {
global: [
{ key: 'MoveSpritePlugin', plugin: MoveSpritePlugin, start: true }
]
},
scene: {
preload: preload,
create: create
}
};
let game = new Phaser.Game(config);
function preload ()
{
this.load.setBaseURL('https://cdn.phaserfiles.com/v355');
this.load.image('elephant', 'assets/sprites/elephant.png');
}
function create ()
{
let ele = this.add.image(400, 300, 'elephant');
let plugin = this.plugins.get('MoveSpritePlugin');
plugin.setSprite(ele);
this.input.on('pointerup', function (pointer) {
if (this.plugins.isActive('MoveSpritePlugin'))
{
this.plugins.stop('MoveSpritePlugin');
}
else
{
this.plugins.start('MoveSpritePlugin');
}
}, this);
}