// #module import Button from '../../libs/ui/Button.js'; class Example extends Phaser.Scene { constructor () { super(); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v385'); this.load.video('spaceace', 'assets/video/spaceace.mp4', true); this.load.atlas('ui', 'assets/ui/dark-ui.png', 'assets/ui/dark-ui.json'); } create () { const intro = this.add.video(0, 0, 'spaceace').setOrigin(0); intro.play(true); const grabImage = this.add.image(32, 32).setOrigin(0); const area = this.add.rectangle(0, 0, 320, 180).setStrokeStyle(1, 0x00ff00); this.input.on('pointermove', (pointer) => { const x = Phaser.Math.Clamp(pointer.x, 160, 1120); const y = Phaser.Math.Clamp(pointer.y, 90, 630); area.setPosition(x, y); }); this.input.on('pointerdown', (pointer) => { const x = Phaser.Math.Clamp(pointer.x, 160, 1120); const y = Phaser.Math.Clamp(pointer.y, 90, 630); area.setPosition(x, y); let snap = intro.snapshotArea(area.x - 160, area.y - 90, 320, 180); grabImage.setTexture(snap); }); } } const config = { type: Phaser.AUTO, width: 1280, height: 720, antialiasGL: false, backgroundColor: '#000000', parent: 'phaser-example', scene: Example }; let game = new Phaser.Game(config);
Scan to open on your mobile device
// #module import Button from '../../libs/ui/Button.js'; class Example extends Phaser.Scene { constructor () { super(); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v385'); this.load.video('spaceace', 'assets/video/spaceace.mp4', true); this.load.atlas('ui', 'assets/ui/dark-ui.png', 'assets/ui/dark-ui.json'); } create () { const intro = this.add.video(0, 0, 'spaceace').setOrigin(0); intro.play(true); const grabImage = this.add.image(32, 32).setOrigin(0); const area = this.add.rectangle(0, 0, 320, 180).setStrokeStyle(1, 0x00ff00); this.input.on('pointermove', (pointer) => { const x = Phaser.Math.Clamp(pointer.x, 160, 1120); const y = Phaser.Math.Clamp(pointer.y, 90, 630); area.setPosition(x, y); }); this.input.on('pointerdown', (pointer) => { const x = Phaser.Math.Clamp(pointer.x, 160, 1120); const y = Phaser.Math.Clamp(pointer.y, 90, 630); area.setPosition(x, y); let snap = intro.snapshotArea(area.x - 160, area.y - 90, 320, 180); grabImage.setTexture(snap); }); } } const config = { type: Phaser.AUTO, width: 1280, height: 720, antialiasGL: false, backgroundColor: '#000000', parent: 'phaser-example', scene: Example }; let game = new Phaser.Game(config);