фазерная игра не рабочий класс расширяет проблему

#html #phaser-framework

#HTML #phaser-framework

Вопрос:

Я разрабатываю проект, и он говорит это моим сценам, и это всего лишь один пустой экран, который белый

когда я проверяю debug, я получаю это:

Неперехваченная ошибка типа: класс расширяет неопределенное значение, которое не является конструктором или null

вот мой индексный файл

 <!doctype html> 
<html lang="en"> 
<head> 
    <title>save the mahanadi river, an energy project</title>  
     <!--libs-->
     <script src="//cdn.jsdelivr.net/npm/phaser@3.24.1/dist/phaser.js"></script>
     <!--project-->
     <script type = "text/javascript" src = ".js/game.js"></script>
     <!--scenes-->
     <script type = "text/javascript" src = "scenes/boot.js"></script>
     <script type = "text/javascript" src = "scenes/menu.js"></script>
</head>
<body>
   <H1>hello for now</H1> 
</body>
</html>
  

и мой проблемный код сцены

 class Boot extends Phaser.scene {
    constructor() {
        super("Boot")
    };

    preload (){
        
    };

    create (){
        this.add.text(20, 20, "welcome!")
    };

    update (){
        
    };
};
  

вот мой game.js

     window.onload = function(){
        var config = {
            type: Phaser.AUTO,
            width: 800,
            height: 600,
            physics: {
                default: 'arcade',
                arcade: {
                    gravity: { y: 300 },
                    debug: false
                }
            },
            scene: {
                preload: preload,
                create: create,
                update: update
            }
        };
    
        var game = new Phaser.Game(config);
    }


ok thanks photon storm but i still have bugs 

my game.js

window.onload = function(){
    var config = {
        type: Phaser.AUTO,
        width: 800,
        height: 600,
        Scenes: [Boot,Menu],
        Scenes.push(Boot),
        Scenes.push(Menu),
        physics: {
            default: 'arcade',
            arcade: {
                gravity: { y: 300 },
                debug: false
            }
        },
    };

    var game = new Phaser.Game(config);

    
    
}
  

это создает проблемы при phaser.push

Комментарии:

1. пожалуйста, помогите мне, потому что мне это действительно нужно для школы

2. пожалуйста, помогите мне снова photonstorm

Ответ №1:

Если вы собираетесь использовать класс для своей сцены, вам нужно изменить конфигурацию игры, чтобы отразить это. На данный момент он все еще использует старый 3-функциональный подход, но вам нужно сообщить ему, что теперь вы используете класс Scene:

 scene: [ Boot ]
  

Где ‘Boot’ — это ваша сцена загрузки. Добавление дополнительных сцен? Добавьте их в этот массив. Первый в списке запускается автоматически.

Комментарии:

1. поэтому я просто поместил этот массив в конфигурацию

2. не могли бы вы показать, как поместить это в код, потому что я новичок в phaser

3. неожиданный токен консоли отладки ‘.’

4. и старый класс расширяет значение undefined не является конструктором или null

5. JavaScript чувствителен к регистру. Правильная конфигурация: scene: [Boot, Menu] — нижний регистр, без множественного числа, простой массив. Удалите эти push строки, они ничего не делают.