Класс: Phaser.Camera
Конструктор
new Camera(game, id, x, y, width, height)
Камера — это ваш вид на игровой мир. Она имеет положение и размер и отображает только те объекты, которые находятся в поле зрения.
Игра автоматически создает единственную камеру размером с сцену при запуске. Перемещайте камеру по миру с помощью Phaser.Camera.x/y
Параметры
| Имя | Тип | Описание |
|---|---|---|
game | Phaser.Game | Ссылка на текущую запущенную игру. |
id | number | В данный момент не используется, будет использоваться при поддержке Phaser нескольких камер |
x | number | Положение камеры по оси X |
y | number | Положение камеры по оси Y |
width | number | Ширина области просмотра |
height | number | Высота области просмотра |
- Исходный код: core/Camera.js (Строка 20)
Общедоступные свойства
- Source code: core/Camera.js (Line 231)
- Source code: core/Camera.js (Line 189)
- Source code: core/Camera.js (Line 195)
- Source code: core/Camera.js (Line 201)
- Source code: core/Camera.js (Line 207)
- Source code: core/Camera.js (Line 213)
- Source code: core/Camera.js (Line 219)
- Source code: core/Camera.js (Line 225)
- Source code: core/Camera.js (Line 76)
- Source code: core/Camera.js (Line 54)
- Source code: core/Camera.js (Line 59)
- Source code: core/Camera.js (Line 87)
- Внутреннее:
- Этот член является внутренним (защищённым) и может быть изменён или удалён в будущем.
- Source code: core/Camera.js (Line 135)
- Source code: core/Camera.js (Line 25)
- Source code: core/Camera.js (Line 898)
- Source code: core/Camera.js (Line 36)
- Source code: core/Camera.js (Line 109)
- Source code: core/Camera.js (Line 128)
- Source code: core/Camera.js (Line 119)
- Source code: core/Camera.js (Line 114)
- Source code: core/Camera.js (Line 849)
- Значение по умолчанию
- true
- Source code: core/Camera.js (Line 71)
[static] ENABLE_FX : boolean
[static] FOLLOW_LOCKON : number
[static] FOLLOW_PLATFORMER : number
[static] FOLLOW_TOPDOWN : number
[static] FOLLOW_TOPDOWN_TIGHT : number
[static] SHAKE_BOTH : number
[static] SHAKE_HORIZONTAL : number
[static] SHAKE_VERTICAL : number
atLimit : boolean
Прижата ли эта камера к границам мира?
bounds : Phaser.Rectangle
Камера ограничена этим прямоугольником и не может перемещаться за его пределы. По умолчанию он включён и имеет размер мира.
Прямоугольник может быть расположен где угодно в мире и обновляться так часто, как вам нужно. Если вы не хотите, чтобы камера была ограничена
вообще, установите это значение в null. Значения могут быть любыми и заданы в координатах мира, где 0,0 - верхний левый угол мира. Прямоугольник, в котором ограничена камера. Установите в null, чтобы разрешить перемещение в любом месте.
deadzone : Phaser.Rectangle
Перемещение внутри этого прямоугольника не заставит камеру двигаться.
displayObject :PIXI.DisplayObject
Объект отображения, к которому добавляются все игровые объекты. Установлен World.boot.
<internal> fx : Phaser.Graphics
Объект Graphics, используемый для обработки эффектов камеры, таких как затемнение и вспышки.
game : Phaser.Game
Ссылка на текущую запущенную игру.
height : number
Высота камеры. По умолчанию она совпадает с размером игры и пока не должна изменяться. Возвращает или задаёт высоту камеры.
id : number
Зарезервировано для будущих многокамерных систем.
lerp : Phaser.Point
Значение линейной интерполяции, используемой при слежении за целью.
Значение по умолчанию 1 означает, что камера мгновенно переместится к целевым координатам.
Меньшее значение, такое как 0,1, означает, что камера будет отслеживать цель медленнее, обеспечивая
плавный переход. Вы можете устанавливать горизонтальные и вертикальные значения независимо, а также
изменять это значение в режиме реального времени во время игры.
onFadeComplete : Phaser.Signal
Этот сигнал отправляется, когда эффект затемнения камеры завершается.
После завершения эффекта затемнения экран останется чёрным (или любого другого цвета,
к которому вы затемняли). Для сброса, вызовите Camera.resetFX. Это вызывается
автоматически при смене состояния.
onFlashComplete : Phaser.Signal
Этот сигнал отправляется, когда завершается эффект вспышки камеры.
onShakeComplete : Phaser.Signal
Этот сигнал отправляется, когда завершается эффект дрожания камеры.
position : Phaser.Point
Положение камеры. Это значение автоматически ограничивается, если выходит за пределы границ мира. Возвращает или задаёт положение камеры по осям x и y с помощью объекта Phaser.Point.
roundPx : boolean
Если у камеры установлен roundPx в true, она будет вызывать view.floor как часть цикла обновления, поддерживая целочисленные значения границ. Установите это в false чтобы отключить это.
scale : Phaser.Point
- Исходный код: core/Camera.js (Строка 92)
- Исходный код: core/Camera.js (Строка 920)
- Исходный код: core/Camera.js (Строка 82)
- Исходный код: core/Camera.js (Строка 98)
- Исходный код: core/Camera.js (Строка 45)
- Значение по умолчанию
- true
- Исходный код: core/Camera.js (Строка 65)
- Исходный код: core/Camera.js (Строка 877)
- Исходный код: core/Camera.js (Строка 30)
- Исходный код: core/Camera.js (Строка 799)
- Исходный код: core/Camera.js (Строка 824)
Масштаб объекта отображения, к которому добавляются все объекты игры. Устанавливается методом World.boot.
shakeIntensity : number
Интенсивность встряски камеры. Получает или устанавливает интенсивность встряски камеры.
target : Phaser.Sprite
Если камера отслеживает Sprite, это ссылка на него, в противном случае null.
[только для чтения] totalInView : number
Общее количество Sprites с autoCull установленным на true, которые видны этой камерой.
view : Phaser.Rectangle
Область обзора камеры.
Представляет область мира, которую мы хотим отобразить (по умолчанию размеры игры).
Значения x/y — в координатах мира, а не экрана, ширина/высота — количество пикселей для отображения.
Sprites за пределами этого обзора не отображаются, если Sprite.autoCull установлен на true. В противном случае они всегда отображаются.
visible : boolean
Видимость этой камеры.
width : number
Ширина камеры. По умолчанию равна размеру игры и на данный момент не должна настраиваться. Получает или устанавливает ширину камеры.
world : Phaser.World
Ссылка на мир игры.
x : number
Координата x камеры. Это значение автоматически ограничивается, если оно выходит за пределы границ мира. Получает или устанавливает позицию камеры по оси x.
y : number
Координата y камеры. Это значение автоматически ограничивается, если оно выходит за пределы границ мира. Получает или устанавливает позицию камеры по оси y.
Публичные методы
- Внутренний:
- Этот член является внутренним (защищенным) и может быть изменён или удалён в будущем.
- Исходный код: core/Camera.js (Строка 657)
- Исходный код: core/Camera.js (Строка 441)
- Исходный код: core/Camera.js (Строка 401)
- Исходный код: core/Camera.js (Строка 335)
- Исходный код: core/Camera.js (Строка 346)
- Исходный код: core/Camera.js (Строка 269)
- Исходный код: core/Camera.js (Строка 258)
- Исходный код: core/Camera.js (Строка 759)
- Исходный код: core/Camera.js (Строка 779)
<internal> checkBounds()
Метод, вызываемый для проверки, чтобы камера не выходила за пределы игрового мира.
Вызывается автоматически методом Camera.update.
fade(color, duration, force) → {boolean}
Создаёт эффект затемнения камеры. Он работает путём заполнения игры заданным цветом,
в течение заданного времени, заканчивая полным заполнением.
Это можно использовать, например, для перехода к новой сцене.
Игра останется «заполненной» по завершении этого эффекта, вероятно, скрывая
всё. Для сброса этого эффекта, можно вызвать Camera.resetFX и он очистит
затемнение. Или вы можете вызвать Camera.flash с тем же цветом, что и затемнение, и он
обратит процесс, вернув игру в видимое состояние.
По завершении эффекта, отправляется сигнал Camera.onFadeComplete.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
color | numer | <optional> | 0x000000 | Цвет, к которому будет затемняться игра. Например, 0x000000 для чёрного, 0xff0000 для красного и т.д. |
duration | number | <optional> | 500 | Продолжительность затемнения в миллисекундах. |
force | boolean | <optional> | false | Если эффект вспышки или затемнения камеры уже запущен, и force имеет значение true, он заменит предыдущий эффект, сбросив продолжительность. |
Возвращает
True, если эффект был запущен, иначе false.
flash(color, duration, force) → {boolean}
Создаёт эффект вспышки камеры. Он работает путём заполнения игры твёрдым цветом
и затем постепенным уменьшением его альфа-канала до 0 в течение заданного времени.
Это можно использовать, например, для создания эффектов обратной связи при нажатии.
По завершении эффекта, отправляется сигнал Camera.onFlashComplete.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
color | numer | <optional> | 0xffffff | Цвет эффекта вспышки. Например, 0xffffff для белого, 0xff0000 для красного и т.д. |
duration | number | <optional> | 500 | Продолжительность эффекта вспышки в миллисекундах. |
force | boolean | <optional> | false | Если эффект вспышки или затемнения камеры уже запущен, и force имеет значение true, он заменит предыдущий эффект, сбросив продолжительность. |
Возвращает
True, если эффект был запущен, иначе false.
focusOn(displayObject)
Немедленно перемещает фокус камеры на объект отображения.
Параметры
| Имя | Тип | Описание |
|---|---|---|
displayObject | any | Объект отображения, на который необходимо направить фокус камеры. Должен иметь видимые свойства x/y. |
focusOnXY(x, y)
Немедленно перемещает фокус камеры на указанную позицию.
Параметры
| Имя | Тип | Описание |
|---|---|---|
x | number | Позиция X. |
y | number | Позиция Y. |
follow(target, style, lerpX, lerpY)
Указывает камере, за каким спрайтом следить.
Можно установить тип следования и значение линейной интерполяции.
Используйте низкие значения lerp (например, 0.1) для автоматического сглаживания движения камеры.
Если вы наблюдаете эффект «дрожания» при слежении за спрайтом, это, вероятно, связано с субпиксельным рендерингом позиции спрайта.
Это можно отключить, установив game.renderer.renderSession.roundPixels = true для принудительного рендеринга с полным пикселем.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
target | Phaser.Sprite | Phaser.Image | Phaser.Text | Объект, за которым вы хотите следить. Установите в значение null, чтобы ничего не отслеживать. | ||
style | number | <optional> | Используйте один из существующих предустановок «deadzone». Если вы используете пользовательскую deadzone, проигнорируйте этот параметр и вручную задайте deadzone после вызова follow(). | |
lerpX | float | <optional> | 1 | Значение от 0 до 1. Это значение определяет степень линейной интерполяции при горизонтальном отслеживании целевого объекта. Чем ближе значение к 1, тем быстрее камера будет отслеживать. |
lerpY | float | <optional> | 1 | Значение от 0 до 1. Это значение определяет степень линейной интерполяции при вертикальном отслеживании целевого объекта. Чем ближе значение к 1, тем быстрее камера будет отслеживать. |
preUpdate()
Предварительная обработка обновления камеры. Устанавливает счётчик общего просмотра в ноль.
reset()
Сбрасывает камеру до 0,0 и отключает следование за любым объектом, за которым она могла следить.
Также немедленно сбрасывает любые эффекты камеры, такие как
дрожание, вспышка или затемнение.
resetFX()
Сбрасывает все активные эффекты, такие как затемнение или вспышку, и немедленно очищает их.
Полезно вызывать после затемнения, чтобы удалить затемнение с экрана.
- Исходный код: core/Camera.js (Строка 643)
- Исходный код: core/Camera.js (Строка 725)
- Исходный код: core/Camera.js (Строка 745)
- Исходный код: core/Camera.js (Строка 358)
- Исходный код: core/Camera.js (Строка 324)
- Внутреннее:
- Этот элемент является внутренним (защищенным) и может быть изменен или удален в будущем.
- Исходный код: core/Camera.js (Строка 486)
setBoundsToWorld()
Обновляет границы камеры, чтобы они соответствовали миру игры.
setPosition(x, y)
Вспомогательная функция для одновременной установки свойств X и Y камеры,
не прибегая к использованию game.camera.x и game.camera.y.
Параметры
| Имя | Тип | Описание |
|---|---|---|
x | число | Положение по оси X. |
y | число | Положение по оси Y. |
setSize(width, height)
Устанавливает размер прямоугольника просмотра на основе заданной ширины и высоты.
Параметры
| Имя | Тип | Описание |
|---|---|---|
width | число | Желаемая ширина. |
height | число | Желаемая высота. |
shake(intensity, duration, force, direction, shakeBounds) → {boolean}
Создает эффект тряски камеры. Он работает путем применения случайного
количества дополнительного смещения по осям X и Y каждый кадр. Вы можете управлять
интенсивностью и продолжительностью эффекта, а также если он должен влиять
на обе оси или только на одну.
По окончании эффекта тряски отправляется сигнал Camera.onShakeComplete.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
intensity | вещественное число | <дополнительно> | 0.05 | Интенсивность тряски камеры. Задается в процентах от размера камеры, представляя максимальное расстояние, на которое камера может смещаться во время тряски. |
duration | число | <дополнительно> | 500 | Продолжительность эффекта тряски в миллисекундах. |
force | логическое значение | <дополнительно> | true | Если эффект тряски уже запущен, а force — true, предыдущий эффект будет заменен, сбросив продолжительность. |
direction | число | <дополнительно> | Phaser.Camera.SHAKE_BOTH | Направления, в которых камера может трястись. Либо Phaser.Camera.SHAKE_BOTH, Phaser.Camera.SHAKE_HORIZONTAL или Phaser.Camera.SHAKE_VERTICAL. |
shakeBounds | логическое значение | <дополнительно> | true | Разрешено ли смещать камеру за пределы её границ (если они установлены)? |
Возвращает
True, если эффект тряски был запущен, иначе false.
unfollow()
Устанавливает целевой объект отслеживания камеры в null, прекращая отслеживание объекта, если оно происходит.
<внутреннее> update()
Цикл обновления камеры. Вызывается автоматически основным циклом игры.
© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Camera.html