В библиотеке Phaser все визуальные элементы сцены
наследуются от класса Phaser.GameObjects.GameObject. Этот
класс служит базой для спрайтов, текстов, контейнеров, графики и других
объектов, предоставляя набор общих свойств и методов, необходимых для
управления объектами в игровом мире.
scene Ссылка на сцену, в которой
находится объект. Позволяет обращаться к ресурсам сцены, например, к
таймерам, камере или другим объектам.
type Строковое значение,
указывающее тип объекта ('Sprite', 'Text',
'Image' и т.д.). Используется для идентификации объекта при
обработке событий или в группах.
active Булевое свойство,
определяющее, участвует ли объект в обновлении (update)
сцены. Если false, объект пропускается в цикле обновления,
но остаётся видимым, если visible = true.
visible Управляет отображением
объекта. Установка false скрывает объект без удаления его
из сцены. Комбинация active = false и
visible = false часто используется для временного
отключения объектов.
alpha Прозрачность объекта.
Значение от 0 (полностью прозрачный) до 1 (полностью
непрозрачный).
scaleX и scaleY
Масштабирование объекта по осям X и Y. Позволяет увеличивать или
уменьшать объект без изменения исходного размера текстуры.
rotation и angle
rotation задаёт вращение объекта в радианах.angle задаёт вращение в градусах. Связь между ними:
angle = rotation * 180 / Math.PI.x и y Координаты
объекта в пространстве сцены. Изменение этих значений перемещает
объект.
originX и originY
Точка привязки объекта относительно его размеров. Например,
(0,0) — верхний левый угол, (0.5,0.5) — центр,
(1,1) — нижний правый угол.
depth Порядок отображения объекта
относительно других объектов. Чем выше значение, тем объект ближе к
переднему плану.
name Пользовательское имя объекта.
Удобно для поиска или фильтрации объектов внутри сцены.
setActive(active: boolean) Включает
или отключает объект в цикле обновления. Пример:
player.setActive(false); // объект перестанет обновлятьсяsetVisible(visible: boolean)
Управляет видимостью объекта. Позволяет временно скрывать объекты без их
удаления:
enemy.setVisible(false);setAlpha(alpha: number) Изменяет
прозрачность объекта:
coin.setAlpha(0.5); // полупрозрачный объектsetScale(x: number, y?: number)
Масштабирование объекта по осям. Если y не указан,
используется значение x для обеих осей:
sprite.setScale(2); // увеличение в 2 раза
sprite.setScale(1.5, 2); // по X и Y отдельноsetAngle(degrees: number) Поворот
объекта в градусах:
arrow.setAngle(90); // повернуть на 90 градусовsetOrigin(x: number, y: number)
Устанавливает точку привязки объекта:
sprite.setOrigin(0.5, 0.5); // центрdestroy() Полное удаление объекта
из сцены и освобождение ресурсов. Метод удаляет объект из групп и
списков сцены. После вызова объект становится недоступен:
enemy.destroy();Группы (Phaser.GameObjects.Group)
GameObject можно добавлять в группы, чтобы управлять сразу множеством
объектов. Свойства active, visible,
alpha и depth распространяются на объекты
внутри группы по необходимости.
Контейнеры
(Phaser.GameObjects.Container) Контейнеры
позволяют объединять несколько GameObject в один объект для совместного
перемещения, масштабирования или вращения.
let container = this.add.container(100, 100, [sprite1, sprite2]);
container.setScale(2); // увеличит сразу оба спрайтаТаймеры и события С помощью
scene.time.addEvent объекты можно анимировать или управлять
их свойствами по времени. GameObject сам не имеет встроенной логики
анимации, но через сцену можно реализовать плавные изменения
свойств.
Комбинация active и visible позволяет
эффективно управлять ресурсами:
active = false, visible = true –
объект отображается, но не обновляется (экономия ресурсов CPU).active = true, visible = false –
объект участвует в логике, но не виден на экране.active = false, visible = false –
полностью отключённый объект, минимальное потребление ресурсов.Это особенно важно для крупных игр с множеством спрайтов и объектов на сцене.
Все основные визуальные элементы Phaser, такие как
Sprite, Image, Text,
Graphics, наследуются от GameObject. Благодаря
этому:
GameObject и добавляя уникальные методы и свойства.GameObject — базовый класс всех визуальных
объектов.x, y, rotation,
scale, alpha, visible,
active позволяют управлять положением, размером и
отображением.setActive, setVisible,
setAlpha, setScale, setAngle,
setOrigin, destroy обеспечивают удобное
программное управление.Эффективное использование GameObject является
фундаментом для построения производительных и организованных игр на
Phaser.