class Example extends Phaser.Scene { ellipses; graphics; create () { this.graphics = this.add.graphics({ lineStyle: { color: 0x00aaaa } }); let ellipse = new Phaser.Geom.Ellipse(400, 300, 0, 0); this.ellipses = [ ellipse ]; for (let i = 0; i < 80; i++) { ellipse = Phaser.Geom.Ellipse.Clone(ellipse); ellipse.width += 1.5; ellipse.height += 0.7; Phaser.Geom.Ellipse.CircumferencePoint(ellipse, i / 20 * Phaser.Math.PI2, ellipse); this.ellipses.push(ellipse); } } update () { this.graphics.clear(); for (let i = 0; i < this.ellipses.length; i++) { this.ellipses[i].width += 1.5; this.ellipses[i].height += 0.7; if (this.ellipses[i].width > 800) { this.ellipses[i].width = 0; this.ellipses[i].height = 0; } this.graphics.strokeEllipseShape(this.ellipses[i]); } } } const config = { width: 800, height: 600, type: Phaser.AUTO, parent: 'phaser-example', scene: Example }; const game = new Phaser.Game(config);
Scan to open on your mobile device
class Example extends Phaser.Scene { ellipses; graphics; create () { this.graphics = this.add.graphics({ lineStyle: { color: 0x00aaaa } }); let ellipse = new Phaser.Geom.Ellipse(400, 300, 0, 0); this.ellipses = [ ellipse ]; for (let i = 0; i < 80; i++) { ellipse = Phaser.Geom.Ellipse.Clone(ellipse); ellipse.width += 1.5; ellipse.height += 0.7; Phaser.Geom.Ellipse.CircumferencePoint(ellipse, i / 20 * Phaser.Math.PI2, ellipse); this.ellipses.push(ellipse); } } update () { this.graphics.clear(); for (let i = 0; i < this.ellipses.length; i++) { this.ellipses[i].width += 1.5; this.ellipses[i].height += 0.7; if (this.ellipses[i].width > 800) { this.ellipses[i].width = 0; this.ellipses[i].height = 0; } this.graphics.strokeEllipseShape(this.ellipses[i]); } } } const config = { width: 800, height: 600, type: Phaser.AUTO, parent: 'phaser-example', scene: Example }; const game = new Phaser.Game(config);