切换1:
以下代码是创建2个场景,每次点击时候切换场景,每个场景都是单独随机创建一堆元素。
场景切换代码:
this.scene.start('sceneA');
class SceneA extends Phaser.Scene { constructor () { super({ key: 'sceneA' }); } preload () { this.load.spritesheet('bobs', 'assets/sprites/bobs-by-cleathley.png', { frameWidth: 32, frameHeight: 32 }); } create () { for (var i = 0; i < 5000; i++) { // 获得2者随机 var x = Phaser.Math.Between(0, 2500); var y = Phaser.Math.Between(0, 2500); var frame = Phaser.Math.Between(0, 399); var bob = this.add.sprite(x, y, 'bobs', frame); if (i % 2) { // Hide every other sprite, it will still be on the display list though bob.setVisible(false); } } this.add.text(10, 10, 'Scene A', { font: '16px Courier', fill: '#ffffff' }); // 绑定鼠标抬起 this.input.once('pointerup', function () { //切换场景sceneB this.scene.start('sceneB'); }, this); } } class SceneB extends Phaser.Scene { constructor () { super({ key: 'sceneB' }); } create () { for (var i = 0; i < 5000; i++) { var x = Phaser.Math.Between(0, 2500); var y = Phaser.Math.Between(0, 2500); var frame = Phaser.Math.Between(0, 399); var bob = this.add.sprite(x, y, 'bobs', frame); if (i % 2) { // Hide every other sprite, it will still be on the display list though bob.setVisible(false); } } this.add.text(10, 10, 'Scene B', { font: '16px Courier', fill: '#ffffff' }); this.input.once('pointerup', function () { this.scene.start('sceneA'); }, this); } } var config = { type: Phaser.AUTO, width: 800, height: 600, backgroundColor: '#000000', parent: 'phaser-example', scene: [ SceneA, SceneB ] }; var game = new Phaser.Game(config);
切换2:
此方式与1不同在于,this.scene.add('myScene', MyScene, true, { x: 400, y: 300 }); 调用此方法添加场景队列自动执行。
点击切换
class MyScene extends Phaser.Scene { preload () { this.load.image('face', 'assets/pics/bw-face.png'); } create (data) { this.face = this.add.image(data.x, data.y, 'face'); } } class BootScene extends Phaser.Scene { create () { this.add.text(0, 0, 'Click to add new Scene'); this.input.once('pointerdown', function () { this.scene.add('myScene', MyScene, true, { x: 400, y: 300 }); }, this); } } var config = { type: Phaser.AUTO, parent: 'phaser-example', width: 800, height: 600, scene: BootScene }; var game = new Phaser.Game(config);
查看更多关于phaser3入门教程-场景切换的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did31426