class Example extends Phaser.Scene { constructor () { super(); this.t = 0.0; } drawStar (graphics, cx, cy, spikes, outerRadius, innerRadius, color, lineColor) { let rot = Math.PI / 2 * 3; let x = cx; let y = cy; const step = Math.PI / spikes; graphics.save(); graphics.lineStyle(4, lineColor, 1); graphics.fillStyle(color, 1); graphics.beginPath(); graphics.moveTo(cx, cy - outerRadius); for (let i = 0; i < spikes; i++) { x = cx + Math.cos(rot) * outerRadius; y = cy + Math.sin(rot) * outerRadius; graphics.lineTo(x, y); rot += step; x = cx + Math.cos(rot) * innerRadius; y = cy + Math.sin(rot) * innerRadius; graphics.lineTo(x, y); rot += step; } graphics.lineTo(cx, cy - outerRadius); graphics.closePath(); graphics.fillPath(); graphics.strokePath(); graphics.restore(); } preload() { this.load.image('swirl', 'assets/pics/color-wheel-swirl.png'); this.load.image('checker', 'assets/pics/checker.png'); } create() { const shape = this.make.graphics(); checker = this.make.image({ x: game.config.width / 2, y: game.config.height / 2, key: 'checker', add: true }); const swirl = this.make.sprite({ x: game.config.width / 2, y: game.config.height / 2, key: 'swirl', add: true }); shape.x = game.config.width / 2; shape.y = game.config.height / 2; this.drawStar(shape, 0, 0, 5, 100, 100 / 2, 0xffff00, 0xff0000); swirl.mask = new Phaser.Display.Masks.GeometryMask(this, shape); this.input.on('pointermove', function (pointer) { shape.x = pointer.x; shape.y = pointer.y; }); } update() { checker.x += Math.sin(this.t) * 1; this.t += 0.01; } } const config = { type: Phaser.AUTO, parent: 'phaser-example', width: 640, height: 480, scene: [ Example ] }; let checker; const game = new Phaser.Game(config);
Scan to open on your mobile device
class Example extends Phaser.Scene { constructor () { super(); this.t = 0.0; } drawStar (graphics, cx, cy, spikes, outerRadius, innerRadius, color, lineColor) { let rot = Math.PI / 2 * 3; let x = cx; let y = cy; const step = Math.PI / spikes; graphics.save(); graphics.lineStyle(4, lineColor, 1); graphics.fillStyle(color, 1); graphics.beginPath(); graphics.moveTo(cx, cy - outerRadius); for (let i = 0; i < spikes; i++) { x = cx + Math.cos(rot) * outerRadius; y = cy + Math.sin(rot) * outerRadius; graphics.lineTo(x, y); rot += step; x = cx + Math.cos(rot) * innerRadius; y = cy + Math.sin(rot) * innerRadius; graphics.lineTo(x, y); rot += step; } graphics.lineTo(cx, cy - outerRadius); graphics.closePath(); graphics.fillPath(); graphics.strokePath(); graphics.restore(); } preload() { this.load.image('swirl', 'assets/pics/color-wheel-swirl.png'); this.load.image('checker', 'assets/pics/checker.png'); } create() { const shape = this.make.graphics(); checker = this.make.image({ x: game.config.width / 2, y: game.config.height / 2, key: 'checker', add: true }); const swirl = this.make.sprite({ x: game.config.width / 2, y: game.config.height / 2, key: 'swirl', add: true }); shape.x = game.config.width / 2; shape.y = game.config.height / 2; this.drawStar(shape, 0, 0, 5, 100, 100 / 2, 0xffff00, 0xff0000); swirl.mask = new Phaser.Display.Masks.GeometryMask(this, shape); this.input.on('pointermove', function (pointer) { shape.x = pointer.x; shape.y = pointer.y; }); } update() { checker.x += Math.sin(this.t) * 1; this.t += 0.01; } } const config = { type: Phaser.AUTO, parent: 'phaser-example', width: 640, height: 480, scene: [ Example ] }; let checker; const game = new Phaser.Game(config);