let t = 0; let path; class Example extends Phaser.Scene { constructor () { super(); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v355'); this.load.bitmapFont('desyrel', 'assets/fonts/bitmap/desyrel.png', 'assets/fonts/bitmap/desyrel.xml'); } create () { path = new Phaser.Curves.Path(1500, 500); path.lineTo(700, 500); path.splineTo([ 745, 256, 550, 145, 300, 250, 260, 450, 50, 500 ]); path.lineTo(-100, 500); const text = this.add.dynamicBitmapText(0, 0, 'desyrel', 'Phaser 3', 64); text.setDisplayCallback(this.positionOnPath); const graphics = this.add.graphics(); graphics.lineStyle(1, 0xffffff, 1); path.draw(graphics, 128); } update() { t += 0.001; if (t >= (1 - 0.24)) { t = 0; } } // data = { color: color, index: index, charCode: charCode, x: x, y: y, scaleX: scaleX, scaleY: scaleY } positionOnPath (data) { var pathVector = path.getPoint(t + ((6 - data.index) * 0.04)); if (pathVector) { data.x = pathVector.x; data.y = pathVector.y; } return data; } } const config = { type: Phaser.AUTO, parent: 'phaser-example', width: 800, height: 600, scene: [ Example ] }; const game = new Phaser.Game(config);
Scan to open on your mobile device
let t = 0; let path; class Example extends Phaser.Scene { constructor () { super(); } preload () { this.load.setBaseURL('https://cdn.phaserfiles.com/v355'); this.load.bitmapFont('desyrel', 'assets/fonts/bitmap/desyrel.png', 'assets/fonts/bitmap/desyrel.xml'); } create () { path = new Phaser.Curves.Path(1500, 500); path.lineTo(700, 500); path.splineTo([ 745, 256, 550, 145, 300, 250, 260, 450, 50, 500 ]); path.lineTo(-100, 500); const text = this.add.dynamicBitmapText(0, 0, 'desyrel', 'Phaser 3', 64); text.setDisplayCallback(this.positionOnPath); const graphics = this.add.graphics(); graphics.lineStyle(1, 0xffffff, 1); path.draw(graphics, 128); } update() { t += 0.001; if (t >= (1 - 0.24)) { t = 0; } } // data = { color: color, index: index, charCode: charCode, x: x, y: y, scaleX: scaleX, scaleY: scaleY } positionOnPath (data) { var pathVector = path.getPoint(t + ((6 - data.index) * 0.04)); if (pathVector) { data.x = pathVector.x; data.y = pathVector.y; } return data; } } const config = { type: Phaser.AUTO, parent: 'phaser-example', width: 800, height: 600, scene: [ Example ] }; const game = new Phaser.Game(config);