var config = { type: Phaser.AUTO, parent: 'phaser-example', scene: { preload: preload, create: create }, width: 800, height: 600 }; var game = new Phaser.Game(config); var rt; var blast; var nukeFX; function preload() { this.load.setBaseURL('https://cdn.phaserfiles.com/v355'); this.load.image('fire', 'assets/particles/muzzleflash3.png'); this.load.image('smoke', 'assets/particles/smoke-puff.png'); } function create() { rt = this.make.renderTexture({ x: 0, y: 0, width: 800, height: 600 }); blast = this.add.follower(null, 50, 350, 'smoke'); var curve = new Phaser.Curves.Spline([200, 500, 600, 500, 625, 475, 200, 500, 400, 500, 400, 250]); blast.setPath(curve); nukeFX = this.tweens.add({ targets: blast, scaleX: 8, scaleY: 8, alpha: 0, duration: 1500, ease: "Bounce.easeInOut", complete: function () { console.log('Complete'); rt.clear(); blast.alpha = 0 }, paused: true }); nukeFX.pause(); nukeFX.setCallback('update', draw, [], this); this.input.on('pointerdown', function (pointer) { detonate(pointer.x, pointer.y); }, this); } function detonate(x, y) { blast.setPosition(x, y).setScale(1).setAlpha(1); blast.startFollow(200); nukeFX.restart(); } function draw() { blast.setRotation(Math.random() * 4 -2); blast.setTexture(Math.random() < 0.8 ? 'fire' : 'smoke'); rt.draw(blast); }
Scan to open on your mobile device
var config = { type: Phaser.AUTO, parent: 'phaser-example', scene: { preload: preload, create: create }, width: 800, height: 600 }; var game = new Phaser.Game(config); var rt; var blast; var nukeFX; function preload() { this.load.setBaseURL('https://cdn.phaserfiles.com/v355'); this.load.image('fire', 'assets/particles/muzzleflash3.png'); this.load.image('smoke', 'assets/particles/smoke-puff.png'); } function create() { rt = this.make.renderTexture({ x: 0, y: 0, width: 800, height: 600 }); blast = this.add.follower(null, 50, 350, 'smoke'); var curve = new Phaser.Curves.Spline([200, 500, 600, 500, 625, 475, 200, 500, 400, 500, 400, 250]); blast.setPath(curve); nukeFX = this.tweens.add({ targets: blast, scaleX: 8, scaleY: 8, alpha: 0, duration: 1500, ease: "Bounce.easeInOut", complete: function () { console.log('Complete'); rt.clear(); blast.alpha = 0 }, paused: true }); nukeFX.pause(); nukeFX.setCallback('update', draw, [], this); this.input.on('pointerdown', function (pointer) { detonate(pointer.x, pointer.y); }, this); } function detonate(x, y) { blast.setPosition(x, y).setScale(1).setAlpha(1); blast.startFollow(200); nukeFX.restart(); } function draw() { blast.setRotation(Math.random() * 4 -2); blast.setTexture(Math.random() < 0.8 ? 'fire' : 'smoke'); rt.draw(blast); }