当我到达要触发正在开发的游戏的第二关的区域时,我在更改场景时遇到问题。由于某些原因,游戏没有显示第二级,而是显示黑屏,并且控制台上没有错误。我认为我的问题的答案是(http://www.html5gamedevs.com/topic/37617-trouble-changing-scenes-in-phaser-3/,因为提出问题的那个人遇到了我的问题并设法解决了这个问题,但我不理解他的最新帖子。
在第一个场景中调用第二个场景的方式是该函数:
PassaggioLivello() {
if(this.player.sprite.x > 15400){
this.scene.start(MainScene2);
}
}
两个场景都包含在配置文件中:
import {MainScene} from "./main-scene.js";
import {MainScene2} from "./main-scene.js";
let config = {
type: Phaser.AUTO,
width: 1280,
height: 720,
backgroundColor: "#000c1f",
parent: "game-container",
scene: [MainScene, MainScene2],
pixelArt: true,
physics: { default: "matter" },
plugins: {
scene: [
{
plugin: PhaserMatterCollisionPlugin, // The plugin class
key: "matterCollision", // Where to store in Scene.Systems, e.g.
scene.sys.matterCollision
mapping: "matterCollision" // Where to store in the Scene, e.g. scene.matterCollision
}
]
}
};
let game = new Phaser.Game(config);
能帮我吗?我不明白我的错误。
答案 0 :(得分:1)
me.startup
方法需要您要开始的场景的标识键,而不是场景对象本身。
要导入的每个场景都应在构造函数方法中声明一个键,如下所示:
this.scene.start()
然后,您应该可以通过调用constructor() {
super({ key: 'game' });
}