О чем этот пример
Запуская игру на Phaser, вы наверняка видели фирменный баннер с логотипом фреймворка и названием проекта. По умолчанию он имеет стандартный вид, но его можно и нужно адаптировать под стиль своей игры. Кастомизация баннера — это простой способ повысить узнаваемость проекта на этапе загрузки и создать целостное первое впечатление. В этой статье мы разберем, как через конфигурацию игры управлять цветами, текстом и даже скрывать логотип Phaser, используя объект `banner`.
Версия Phaser: код и демо в этой статье рассчитаны на Phaser 3.90.0.
Живой запуск
Ниже встроен рабочий билд примера. Оригинальный источник: GitHub.
Исходный код
class Example extends Phaser.Scene
{
constructor ()
{
super();
}
preload ()
{
this.load.setBaseURL('https://raw.githubusercontent.com/phaserjs/examples/master/public/');
this.load.image('pic', 'assets/pics/baal-loader.png');
}
create ()
{
this.add.image(400, 300, 'pic');
var text = this.add.text(80, 550, '', { font: '16px Courier', fill: '#ffffff' });
text.setText([
'Game Title: ' + game.config.gameTitle
]);
}
}
const config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600,
// Open the Dev Tools
// The text in the banner will be in white on a neon pink background.
// The colors at the start of the background array define the blocks
// at the beginning of the banner
title: 'Shock and Awesome',
banner: {
text: '#ffffff',
background: [
'#fff200',
'#38f0e8',
'#00bff3',
'#ec008c'
],
hidePhaser: true
},
scene: Example
};
const game = new Phaser.Game(config);
Что такое объект banner в конфиге?
При создании экземпляра игры new Phaser.Game(config) Phaser автоматически отрисовывает информационный баннер в консоли браузера. Его внешний вид и содержимое определяются необязательным объектом banner внутри основного конфигурационного объекта.
Этот объект позволяет переопределить три ключевых параметра: * Цвет текста баннера. * Цветной фон, состоящий из нескольких блоков. * Видимость строки с версией Phaser.
Использование banner не влияет на производительность самой игры, так как баннер существует только в консоли разработчика.
Структура и параметры объекта banner
Объект banner принимает три свойства. Давайте рассмотрим их на основе примера из статьи.
banner: {
text: '#ffffff',
background: [
'#fff200',
'#38f0e8',
'#00bff3',
'#ec008c'
],
hidePhaser: true
}
* text: Строка, определяющая цвет текста в CSS-формате (HEX-код, rgb, название цвета). В примере текст будет белым (#ffffff).
* background: Массив строк с цветами для фона. Каждый элемент массива задает цвет для одного блока в начале баннера. Цвета применяются последовательно. В примере фон будет состоять из четырех разноцветных полос.
* hidePhaser: Булево значение. Если true, из баннера удаляется строка с версией Phaser (например, Phaser v3.60.0). В примере эта строка скрыта.
Как получить название игры в коде сцены?
Название игры, заданное в конфиге в поле title, доступно для использования внутри вашего кода. Это может быть полезно для отображения титров или логирования.
В методе create сцены вы можете обратиться к глобальному объекту game и его конфигурации game.config. Внутри конфига хранится свойство gameTitle.
Вот как это выглядит в примере:
create ()
{
this.add.image(400, 300, 'pic');
var text = this.add.text(80, 550, '', { font: '16px Courier', fill: '#ffffff' });
text.setText([
'Game Title: ' + game.config.gameTitle
]);
}
Код создает текстовый объект и выводит в него строку, состоящую из префикса 'Game Title: ' и значения game.config.gameTitle, которое в нашем случае равно 'Shock and Awesome'.
Полный пример конфигурации
Давайте соберем все вместе и посмотрим на полный код инициализации игры с кастомизированным баннером.
const config = {
type: Phaser.AUTO,
parent: 'phaser-example',
width: 800,
height: 600,
title: 'Shock and Awesome', // Название игры для баннера и game.config
banner: {
text: '#ffffff', // Белый текст
background: [ // Радужный фон из 4-х блоков
'#fff200', // Желтый
'#38f0e8', // Голубой
'#00bff3', // Синий
'#ec008c' // Розовый
],
hidePhaser: true // Скрываем упоминание Phaser в баннере
},
scene: Example // Указываем главную сцену
};
const game = new Phaser.Game(config);
При запуске этой конфигурации в консоли браузера появится яркий баннер с белым текстом на разноцветном фоне, содержащий только название игры Shock and Awesome.
Что попробовать дальше
Кастомизация баннера через объект banner — это малая, но значимая деталь в разработке игры. Она позволяет сразу задать нужное настроение и профессионально оформить этап загрузки. Для экспериментов попробуйте согласовать цвета фона баннера с палитрой вашей игры, использовать градиенты (поддерживаются CSS-строки) или динамически менять gameTitle в зависимости от локализации. Помните, что баннер виден только при открытой консоли, поэтому его основная аудитория — вы сами и другие разработчики.
