Различия Phaser 2 и Phaser 3 — часть 2 (код)

В этой статье я приведу ряд различий между Phaser 2 и Phaser 3 с которыми я столкнулся во время портирования проекта P2 на P3.

1. Конструктор Phaser.Game

Конструктор теперь создаётся с 1 параметром — объектом с полями конфигурации многих элементов. Например:

Пример конструктора Phaser 3

Подробнее можно посмотреть в документации.

2. Раздел game.device

Чуток изменился раздел this.game.device, в нём как будь-то бы прибрались) Появились подразделы browser, os, input, audio, video и др. А в P2 это было всё в куче.

3. Таймер

В P2 одиночный таймер вызывается так:

В P3 это стало выглядеть так:

К тому же появились looped timer, repeat timer, подробности в документации.

4. GameObjects

Классы объектов теперь находятся в Phaser.GameObjects.

Было: Phaser.Sprite, Phaser.Image и др.

Стало: Phaser.GameObjects.Sprite, Phaser.GameObjects.Image и др.

Группы для элементов, которыми у меня являлись обычные спрайты в Phaser2, теперь так не поиспользовать. Sprite — это спрайт, а для группировки элементов теперь нужно использовать класс Phaser.GameObjects.Group, т.е. визуальный элемент теперь нельзя добавить child-ом другому визуальному элементу.

5. Нет класса Button

Это так же относится к предыдущему разделу, но решил вынести отдельно, т.к. в Phaser 3 класса кнопки Button вообще нет. Придётся писать свой класс.

(тут будет пример своего класса кнопки)

6. Update сцены

Наконец-то необходимый атрибут deltaTime теперь нативно передаётся в функцию update() сцены. А также первым атрибутом идёт time.

 

 

 

Статья дополняется

буду дополнять статью по мере определения новых различий в обыденных методах.