Черный экран при смене сцены Phaser 3 - PullRequest
0 голосов
/ 13 января 2019

У меня проблемы со сменой сцен, когда я достигаю области, которая должна вызвать второй уровень в игре, которую я разрабатываю. По некоторым причинам вместо показа второго уровня игра показывает черный экран и никаких ошибок на консоли. Я думаю, что ответ на мой вопрос здесь (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);

Можете ли вы помочь мне? Я не понимаю свою ошибку.

1 Ответ

0 голосов
/ 15 января 2019

Для метода this.scene.start() требуется идентификационный ключ сцены, которую вы хотите запустить, а не сам объект сцены.

Каждая импортируемая сцена должна иметь ключ, объявленный в методе конструктора, например:

constructor() {
    super({ key: 'game' });
}

Тогда вы сможете запустить нужную сцену, позвонив по номеру this.scene.start('game');

...