class Example extends Phaser.Scene { constructor () { super({ physics: { arcade: { customUpdate: true, debug: true, fixedStep: false, fps: 60, gravity: { y: 200 } } } }); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v385'); this.load.image('block', 'assets/sprites/block.png'); this.load.image('logo', 'assets/sprites/phaser3-logo.png'); this.load.image('red', 'assets/particles/red.png'); this.load.image('sky', 'assets/skies/space2.png'); } create () { this.add.image(400, 300, 'sky'); const group = this.physics.add.group({ bounceX: 1, bounceY: 1, collideWorldBounds: true }); group.create(100, 200, 'block').setVelocity(100, 200); group.create(500, 200, 'block').setVelocity(-100, -100); group.create(300, 400, 'block').setVelocity(60, 100); group.create(600, 300, 'block').setVelocity(-30, -50); this.physics.add.collider(group); const particles = this.add.particles(0, 0, 'red', { speed: 100, scale: { start: 1, end: 0 }, blendMode: 'ADD' }); const logo = this.physics.add.image(400, 100, 'logo'); logo.setVelocity(100, 200); logo.setBounce(1, 1); logo.setCollideWorldBounds(true); particles.startFollow(logo); const gui = new dat.GUI({ width: 400 }); gui.add(this.physics, 'enableUpdate'); gui.add(this.physics, 'disableUpdate'); const { world } = this.physics; gui.add({ update: () => { world.update(0, world._frameTimeMS); } }, 'update'); } } const gameConfig = { type: Phaser.AUTO, width: 800, height: 600, parent: 'phaser-example', scene: Example }; const game = new Phaser.Game(gameConfig);
Scan to open on your mobile device
class Example extends Phaser.Scene { constructor () { super({ physics: { arcade: { customUpdate: true, debug: true, fixedStep: false, fps: 60, gravity: { y: 200 } } } }); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v385'); this.load.image('block', 'assets/sprites/block.png'); this.load.image('logo', 'assets/sprites/phaser3-logo.png'); this.load.image('red', 'assets/particles/red.png'); this.load.image('sky', 'assets/skies/space2.png'); } create () { this.add.image(400, 300, 'sky'); const group = this.physics.add.group({ bounceX: 1, bounceY: 1, collideWorldBounds: true }); group.create(100, 200, 'block').setVelocity(100, 200); group.create(500, 200, 'block').setVelocity(-100, -100); group.create(300, 400, 'block').setVelocity(60, 100); group.create(600, 300, 'block').setVelocity(-30, -50); this.physics.add.collider(group); const particles = this.add.particles(0, 0, 'red', { speed: 100, scale: { start: 1, end: 0 }, blendMode: 'ADD' }); const logo = this.physics.add.image(400, 100, 'logo'); logo.setVelocity(100, 200); logo.setBounce(1, 1); logo.setCollideWorldBounds(true); particles.startFollow(logo); const gui = new dat.GUI({ width: 400 }); gui.add(this.physics, 'enableUpdate'); gui.add(this.physics, 'disableUpdate'); const { world } = this.physics; gui.add({ update: () => { world.update(0, world._frameTimeMS); } }, 'update'); } } const gameConfig = { type: Phaser.AUTO, width: 800, height: 600, parent: 'phaser-example', scene: Example }; const game = new Phaser.Game(gameConfig);