Класс Room
Класс Room
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
Комнаты — это сущности, которые содержат все копии, фоновые изображения, тайловые слои и продвинутые сущности. Их также называют картами или уровнями.
Класс Room наследует из класса PIXI.Container и получает все его методы и свойства.
Текущая комната, rooms.current
.
rooms.current
всегда указывает на текущую комнату. Если у вас несколько комнат, расположенных друг над другом, rooms.current
будет указывать на начальную комнату, которая создается в начале игры или после вызова функции rooms.switch
.
Для получения расположенных комнат можно использовать rooms.list
или this.getRoom
внутри событий копий.
Комнаты UI и игрового процесса
Комнаты можно размещать либо в координатах UI, либо в координатах игрового процесса. Комнаты игрового процесса управляются ct.camera
, и их нельзя перемещать вручную. Но комнаты UI могут быть перемещены: например, чтобы перемещать небольшие виджеты внутри области просмотра.
Совет
Больше информации по этой концепции можно найти в разделе "Координаты игры и интерфейса". Для управления областью просмотра обратитесь к разделу "Работа с областью просмотра".
Значимые свойства
Свойство | Тип | Описание |
---|---|---|
alpha | number | Значение от 0 до 1, которое устанавливает непрозрачность комнаты. Вы можете использовать его, например, для постепенного исчезновения или появления слоев интерфейса. 0 означает полностью прозрачный, а 1 — полностью непрозрачный. |
isUi | boolean | Если установлено значение true , комната не будет влиять на масштабирование, движение и вращение камеры. Дополнительные сведения см. в разделе Координаты игры и интерфейса. |
x , y | number | Расположение комнаты. Изменение этих значений не влияет, если комната находится в игровых координатах (если ее свойство isUi равно false ) |
Добавление автоматически выравниваемых копий во время выполнения игры
Методы makeCopyAligned
и makeCopyAlignedRef
для комнат выравнивают элементы в комнате в зависимости от изменений размеров камеры. makeCopyAligned
предполагает, что вы уже разместили копию относительно текущих размеров камеры, а makeCopyAlignedRef
предполагает, что вы размещаете копию относительно размеров комнаты, установленных в ct.IDE.
Пример: Создайте копию в комнате UI и сделайте ее выровненной по верхнему центру
// В событии Start комнаты:
// Создайте копию в центре комнаты.
// Используйте camera.width и camera.height для этого.makeCopyAligned.
var copy = templates.copy('BossHealthbar', this.template.width / 2, 0);
this.makeCopyAlignedRef(copy, {
alignX: 'center',
alignY: 'start'
});
Первый аргумент — это копия, которую вы хотите выровнять, а второй аргумент содержит объект с этими свойствами:
alignX
: как выровнять копию по горизонтали;alignY
: как выровнять копию по вертикали;frame
: ссылочная система для положения относительно нее (необязательно);padding
: границы, добавляемые к ссылочной системе (необязательно).
Свойства alignX
и alignY
могут иметь следующие значения:
'start'
: элемент выравнивается относительно верхней/левой стороны фрейма выравнивания.'end'
: элемент выравнивается относительно нижней/правой стороны фрейма выравнивания.'center'
: элемент выравнивается относительно центра фрейма выравнивания.'both'
: элемент растягивается, чтобы заполнить фрейм выравнивания. Любые пробелы сохраняются как фиксированного размера.'scale'
: элемент масштабируется пропорционально фрейму выравнивания.
Свойство frame
— это объект, определяющий ссылочную систему. Он имеет свойства x1, y1 и x2, y2, которые определяют координаты двух точек, образующих ссылочную систему. Каждая координата определяется как процент размера экрана.
this.makeCopyAlignedRef(copy, { // Сделайте копию выравненной по левой трети экрана
alignX: 'stretch',
alignY: 'stretch',
frame: {
x1: 0,
y1: 0,
x2: 33.3, // Правая сторона ссылочной системы будет размещена в одной третьей от экрана слева
y2: 100
}
});
Если фрейм не указан, он по умолчанию соответствует верхнему левому углу (0;0) и нижнему правому углу (100;100), то есть по умолчанию ссылочная система совпадает с размерами камеры.
padding
используется для добавления дополнительных фиксированных отступов внутри ссылочной системы, что полезно при комбинировании элементов фиксированного и масштабируемого размера на экране. Это объект с свойствами left
, right
, top
и bottom
:
// Сделайте копию выравненной по верхнему краю экрана, сделайте ее масштабируемой пропорционально,
// но добавьте дополнительные отступы вокруг нее
this.makeCopyAlignedRef(copy, {
alignX: 'stretch',
alignY: 'start',
padding: {
left: 160,
right: 160,
top: 0,
bottom: 0
}
});
Если не задано, отступы по умолчанию равны 0 с каждой стороны.