Класс: Phaser.Physics.Arcade.Body
Конструктор
new Body(sprite)
Физическое тело привязано к одному спрайту. Все операции по физике должны выполняться по отношению к телу, а не к самому спрайту.
Например, вы можете установить скорость, ускорение, коэффициент отскока и т.д. для тела.
Параметры
| Имя | Тип | Описание |
|---|---|---|
sprite | Phaser.Sprite | Объект спрайта, к которому принадлежит это физическое тело. |
- Исходный код: physics/arcade/Body.js (Строка 15)
Общедоступные свойства
- Исходный код: physics/arcade/Body.js (Строка 160)
- Значение по умолчанию
- true
- Исходный код: physics/arcade/Body.js (Строка 171)
- Значение по умолчанию
- true
- Исходный код: physics/arcade/Body.js (Строка 78)
- Исходный код: physics/arcade/Body.js (Строка 288)
- Исходный код: physics/arcade/Body.js (Строка 264)
- Исходный код: physics/arcade/Body.js (Строка 270)
- Исходный код: physics/arcade/Body.js (Строка 258)
- Исходный код: physics/arcade/Body.js (Строка 390)
- Исходный код: physics/arcade/Body.js (Строка 1370)
- Исходный код: physics/arcade/Body.js (Строка 181)
- Исходный код: physics/arcade/Body.js (Строка 139)
- Исходный код: physics/arcade/Body.js (Строка 370)
- Исходный код: physics/arcade/Body.js (Строка 361)
- Исходный код: physics/arcade/Body.js (Строка 323)
- Исходный код: physics/arcade/Body.js (Строка 331)
- Исходный код: physics/arcade/Body.js (Строка 155)
- Исходный код: physics/arcade/Body.js (Строка 402)
- Исходный код: physics/arcade/Body.js (Строка 165)
- Исходный код: physics/arcade/Body.js (Строка 355)
- Значение по умолчанию
- true
- Исходный код: physics/arcade/Body.js (Строка 36)
ускорение : Phaser.Point
Ускорение — это скорость изменения скорости. Измеряется в пикселях в секунду за секунду.
разрешить гравитацию : boolean
Разрешить этому телу подвергаться воздействию гравитации? Глобальной или локальной?
разрешить вращение : boolean
Разрешить вращение этому телу? (через angularVelocity и т.д.)
[только для чтения] угол : число
Угол вектора скорости тела в радианах.
угловое ускорение : число
Угловое ускорение — это скорость изменения угловой скорости. Измеряется в градусах в секунду за секунду.
угловой демпинг : число
Демпинг, применяемый к вращению тела. Измеряется в градусах в секунду за секунду.
угловая скорость : число
Угловая скорость контролирует скорость вращения тела. Измеряется в градусах в секунду.
заблокировано : Объект
Этот объект заполняется логическими значениями, когда тело сталкивается с границами мира или плиткой.
Например, если blocked.up равно true, то тело не может двигаться вверх. Объект, содержащий информацию о сторонах, в которых это тело заблокировано.
[только для чтения] низ : число
Значение нижней границы этого тела (равно Body.y + Body.height)
отскок : Phaser.Point
Эластичность тела при столкновении. bounce.x/y = 1 означает полное отражение, bounce.x/y = 0.5 означает отражение со скоростью 50%.
[только для чтения] центр : Phaser.Point
Координаты центра физического тела.
проверка столкновения : Объект
Установите свойства checkCollision, чтобы контролировать, в каких направлениях для этого тела будет обрабатываться столкновение.
Например, checkCollision.up = false означает, что при движении вверх столкновение не будет обрабатываться.
Если нужно полностью отключить тело, используйте body.enable = false, это также отключит движение.
Если нужно отключить только проверки столкновений и/или перекрытий, но сохранить движение, установите checkCollision.none = true. Объект, содержащий разрешенные направления столкновений.
столкновение с границами мира : boolean
Тело может быть настроено на автоматическое столкновение с границами мира и отражение обратно в мир, если это значение равно true. В противном случае оно покинет мир. Должно ли тело сталкиваться с границами мира?
настройка разделения по оси X : boolean
Этот флаг позволяет отключить настраиваемое разделение по оси x, выполняемое Physics.Arcade.separate.
В сочетании с собственным обработчиком столкновений вы можете создать любой тип реакции на столкновение, который вам нужен. Использовать пользовательскую систему разделения или встроенную?
настройка разделения по оси Y : boolean
Этот флаг позволяет отключить настраиваемое разделение по оси y, выполняемое Physics.Arcade.separate.
В сочетании с собственным обработчиком столкновений вы можете создать любой тип реакции на столкновение, который вам нужен. Использовать пользовательскую систему разделения или встроенную?
максимальное смещение : Phaser.Point
Позиция спрайта обновляется на основе значений delta x/y. Вы можете установить ограничение на эти значения (+/-) с помощью deltaMax.
изменён : boolean
Находится ли это тело в состоянии preUpdate (true) или postUpdate (false)?
демпинг : Phaser.Point
Демпинг, применяемый к движению тела.
встроенное : boolean
Если тело перекрывает другое тело, но ни одно из них не движется (возможно, они появились друг на друге?), это значение устанавливается в true. Значение встроенности тела.
включить : boolean
Выключенное тело не будет проверяться на столкновения или перекрытия, и его обновления pre/post не будут выполняться.
- Исходный код: physics/arcade/Body.js (Строка 300)
- Исходный код: physics/arcade/Body.js (Строка 252)
- Исходный код: physics/arcade/Body.js (Строка 25)
- Исходный код: physics/arcade/Body.js (Строка 176)
- Исходный код: physics/arcade/Body.js (Строка 133)
- Исходный код: physics/arcade/Body.js (Строка 127)
- Исходный код: physics/arcade/Body.js (Строка 103)
- Исходный код: physics/arcade/Body.js (Строка 306)
- Исходный код: physics/arcade/Body.js (Строка 45)
- Исходный код: physics/arcade/Body.js (Строка 422)
- Исходный код: physics/arcade/Body.js (Строка 1327)
- Значение по умолчанию
- 1
- Исходный код: physics/arcade/Body.js (Строка 282)
- Значение по умолчанию
- 1000
- Исходный код: physics/arcade/Body.js (Строка 276)
- Исходный код: physics/arcade/Body.js (Строка 247)
- Исходный код: physics/arcade/Body.js (Строка 467)
- Исходный код: physics/arcade/Body.js (Строка 472)
- Значение по умолчанию
- true
- Исходный код: physics/arcade/Body.js (Строка 315)
- Исходный код: physics/arcade/Body.js (Строка 150)
- Исходный код: physics/arcade/Body.js (Строка 60)
- Исходный код: physics/arcade/Body.js (Строка 221)
facing : number
Постоянная ссылка на направление движения или ориентацию тела.
friction : Phaser.Point
Величина движения, которая произойдёт, если другой объект "прилепится" к этому.
game : Phaser.Game
Локальная ссылка на игру.
gravity : Phaser.Point
Локальное гравитационное воздействие, применённое к этому телу. Если ненулевое, переопределяет любую гравитацию мира, если только Body.allowGravity не установлен в false.
[readonly] halfHeight : number
Вычисленная высота физического тела / 2.
[readonly] halfWidth : number
Вычисленная ширина физического тела / 2.
[readonly] height : number
Вычисленная высота физического тела.
immovable : boolean
Неподвижное тело не будет получать удары от других тел.
[readonly] isCircle : boolean
Если true это тело использует круговое обнаружение столкновений. Если false оно использует прямоугольное.
Используйте Body.setCircle для управления формой столкновений, которую использует это тело.
isMoving : boolean
Устанавливается методами moveTo и moveFrom.
left : number
Положение x тела. То же самое, что и Body.x.
mass : number
Масса тела. При столкновении двух тел их масса используется в расчётах для определения обмена скоростью.
maxAngular : number
Максимальная угловая скорость в градусах в секунду, которую может достичь тело.
maxVelocity : Phaser.Point
Максимальная скорость в пикселях в секунду, которую может достичь тело.
movementCallback : Function
Необязательный обратный вызов. Если установлен, вызывается во время выполнения событий moveTo или moveFrom.
movementCallbackContext : Object
Контекст, в котором вызывается movementCallback.
moves : boolean
Если у вас есть тело, которое перемещается по миру с помощью анимации или движения группы, но его локальное положение x/y никогда
не изменяется, то вы должны установить Body.moves = false. В противном случае оно, скорее всего, улетит со экрана.
Если вы хотите, чтобы физическая система перемещала тело, установите moves в true. Установить в true, чтобы позволить физической системе перемещать это тело, иначе в false, чтобы перемещать его вручную.
[readonly] newVelocity : Phaser.Point
Новая скорость. Вычисляется во время Body.preUpdate и применяется к его положению.
offset : Phaser.Point
Смещение физического тела от положения x/y спрайта.
onCollide : Phaser.Signal
Сигнал, который отправляется, когда это тело сталкивается с другим телом.
Вам всё равно нужно вызвать game.physics.arcade.collide в вашем методе update, чтобы
этот сигнал был отправлен.
Обычно вы передаёте обратный вызов в метод collide, но этот сигнал обеспечивает
другой уровень уведомлений.
Из-за потенциально большого объёма сигналов эта функция отключена по умолчанию.
Чтобы использовать эту функцию, установите это свойство в Phaser.Signal: sprite.body.onCollide = new Phaser.Signal(),
и оно будет вызываться при столкновении, передавая два аргумента: спрайты, которые столкнулись.
Первый спрайт в аргументе всегда является владельцем этого тела.
Если два тела с установленным этим сигналом столкнутся, оба отправят сигнал.
- Исходный код: physics/arcade/Body.js (Строка 462)
- Исходный код: physics/arcade/Body.js (Строка 241)
- Исходный код: physics/arcade/Body.js (Строка 201)
- Исходный код: physics/arcade/Body.js (Строка 349)
- Исходный код: physics/arcade/Body.js (Строка 337)
- Исходный код: physics/arcade/Body.js (Строка 343)
- Исходный код: physics/arcade/Body.js (Строка 66)
- Исходный код: physics/arcade/Body.js (Строка 91)
- Исходный код: physics/arcade/Body.js (Строка 72)
- Исходный код: physics/arcade/Body.js (Строка 55)
- Исходный код: physics/arcade/Body.js (Строка 1341)
- Исходный код: physics/arcade/Body.js (Строка 85)
- Исходный код: physics/arcade/Body.js (Строка 407)
- Исходный код: physics/arcade/Body.js (Строка 115)
- Исходный код: physics/arcade/Body.js (Строка 109)
- Исходный код: physics/arcade/Body.js (Строка 294)
- Исходный код: physics/arcade/Body.js (Строка 20)
- Исходный код: physics/arcade/Body.js (Строка 427)
onMoveComplete : Phaser.Signal
Прослушивать завершение событий moveTo или moveFrom.
onOverlap : Phaser.Signal
Сигнал, который отправляется, когда этот Body перекрывается с другим Body.
Вам всё равно нужно вызвать game.physics.arcade.overlap в методе update, чтобы этот сигнал был отправлен.
Обычно вы передаёте обратный вызов методу overlap, но этот сигнал предоставляет другой уровень уведомления.
Из-за потенциального большого объёма сигналов он отключен по умолчанию.
Чтобы использовать эту функцию, установите это свойство в Phaser.Signal: sprite.body.onOverlap = new Phaser.Signal(), и он будет вызываться при столкновении, передавая два аргумента: спрайты, которые столкнулись.
Первый спрайт в аргументе всегда является владельцем этого Body.
Если два Body с этим сигналом столкнутся, оба отправят сигнал.
onWorldBounds : Phaser.Signal
Сигнал, который отправляется, когда этот Body сталкивается с границами мира.
Из-за потенциального большого объёма сигналов он отключен по умолчанию.
Чтобы использовать эту функцию, установите это свойство в Phaser.Signal: sprite.body.onWorldBounds = new Phaser.Signal(), и он будет вызываться при столкновении, передавая пять аргументов:onWorldBounds(sprite, up, down, left, right),
где Sprite — ссылка на Sprite, который владеет этим Body, а другие аргументы — булевы значения, указывающие, с какой стороны мира Body столкнулся.
overlapR : number
Если Body.isCircle равно true, и этот Body сталкивается с другим круговым телом, значение перекрытия сохраняется здесь. Величина перекрытия во время столкновения.
overlapX : number
Когда этот Body сталкивается с другим, значение перекрытия сохраняется здесь. Горизонтальное значение перекрытия во время столкновения.
overlapY : number
Когда этот Body сталкивается с другим, значение перекрытия сохраняется здесь. Вертикальное значение перекрытия во время столкновения.
[только для чтения] position : Phaser.Point
Положение физического тела.
[только для чтения] preRotation : number
Предыдущее вращение физического тела.
[только для чтения] prev : Phaser.Point
Предыдущее положение физического тела.
[только для чтения] radius : number
Радиус круговой формы столкновения, используемой этим Body, если Body.setCircle был включен.
Если вы хотите изменить радиус, снова вызовите setCircle с новым значением.
Если вы хотите прекратить использование круга Body, вызовите setCircle с радиусом ноль (или undefined).
[только для чтения] right : number
Значение справа для этого Body (равно Body.x + Body.width)
rotation : number
Вращение Body в градусах, вычисляемое с помощью angularVelocity и angularAcceleration. Пожалуйста, поймите, что сам Body столкновений никогда не вращается, он всегда ориентирован по осям. Однако эти значения передаются родительскому Sprite и обновляют его вращение.
skipQuadTree : boolean
Если true, и вы столкнётесь со Sprite в группе, это отключит проверку столкновений с помощью QuadTree.
[только для чтения] sourceHeight : number
Исходный размер без масштабирования.
[только для чтения] sourceWidth : number
Исходный размер без масштабирования.
[только для чтения] speed : number
Скорость Body, вычисленная по скорости.
sprite : Phaser.Sprite
Ссылка на родительский Sprite.
stopVelocityOnCollide : boolean
Устанавливается методами moveTo и moveFrom.
syncBounds : boolean
Если true, Body проверит себя по отношению к измерениям Sprite.getBounds() и соответственно скорректирует свою ширину и высоту.
Если false, он сравнит свои размеры со значением масштаба Sprite и соответственно скорректирует ширину и высоту, если масштаб изменился.
Обычно необходимо включить syncBounds, если ваш Sprite является потомком объекта отзывчивого отображения, такого как FlexLayer,
или в любой ситуации, когда масштаб Sprite не изменяется, но масштаб его родителя влияет на размеры вне зависимости.
- Source code: physics/arcade/Body.js (Line 417)
- Source code: physics/arcade/Body.js (Line 397)
- Source code: physics/arcade/Body.js (Line 1356)
- Source code: physics/arcade/Body.js (Line 377)
- Source code: physics/arcade/Body.js (Line 30)
- Source code: physics/arcade/Body.js (Line 144)
- Source code: physics/arcade/Body.js (Line 383)
- Source code: physics/arcade/Body.js (Line 97)
- Source code: physics/arcade/Body.js (Line 189)
- Source code: physics/arcade/Body.js (Line 1385)
- Source code: physics/arcade/Body.js (Line 1404)
tilePadding : Phaser.Point
Если объект особенно мал или быстро движется, он иногда может пропустить столкновение с картой тайлов, если он пройдёт через тайл за один шаг.
Установите это значение отступа, чтобы добавить дополнительный отступ к его границам. tilePadding.x применяется к его ширине, y к его высоте. Дополнительный отступ, добавляемый к размерам этого спрайта при проверке на столкновение с тайлами.
top : number
Положение y тела. То же самое, что и Body.y.
touching : Object
Этот объект заполняется булевыми значениями при столкновении тела с другим.
touching.up = true означает, что столкновение произошло с верхней частью этого тела, например. Объект, содержащий результаты касания.
type : number
Тип физической системы, к которой принадлежит это тело.
velocity : Phaser.Point
Скорость или скорость изменения скорости тела. Измеряется в пикселях в секунду.
wasTouching : Object
Этот объект заполняется предыдущими значениями касания из предыдущего столкновения тел. Объект, содержащий предыдущие результаты касания.
[readonly] width : number
Вычисленная ширина физического тела.
worldBounce : Phaser.Point
Упругость тела при столкновении с границами мира.
По умолчанию этот параметр null, в этом случае Body.bounce используется вместо него. Установите этот параметр
в объект Phaser.Point, чтобы включить значение отскока, специфичное для границ мира.
x : number
Положение x.
y : number
Положение y.
Методы
- Внутренний:
- Этот член является внутренним (защищенным) и может быть изменён или удалён в будущем.
- Исходный код: physics/arcade/Body.js (Строка 795)
- Исходный код: physics/arcade/Body.js (Строка 1245)
- Исходный код: physics/arcade/Body.js (Строка 1257)
- Исходный код: physics/arcade/Body.js (Строка 1269)
- Исходный код: physics/arcade/Body.js (Строка 1281)
- Исходный код: physics/arcade/Body.js (Строка 1293)
- Исходный код: physics/arcade/Body.js (Строка 1305)
- Исходный код: physics/arcade/Body.js (Строка 1165)
- Исходный код: physics/arcade/Body.js (Строка 1195)
- Исходный код: physics/arcade/Body.js (Строка 879)
<internal> checkWorldBounds() → {boolean}
Внутренний метод.
Возвращает
True, если Body столкнулся с границами мира, в противном случае false.
deltaAbsX() → {number}
Возвращает абсолютное значение дельты x.
Возвращает
Абсолютное значение дельты.
deltaAbsY() → {number}
Возвращает абсолютное значение дельты y.
Возвращает
Абсолютное значение дельты.
deltaX() → {number}
Возвращает значение дельты x. Разница между текущим значением Body.x и его значением в предыдущем шаге.
Возвращает
Значение дельты. Положительное, если движение было вправо, отрицательное — влево.
deltaY() → {number}
Возвращает значение дельты y. Разница между текущим значением Body.y и его значением в предыдущем шаге.
Возвращает
Значение дельты. Положительное, если движение было вниз, отрицательное — вверх.
deltaZ() → {number}
Возвращает значение дельты z. Разница между текущим значением Body.rotation и его значением в предыдущем шаге.
Возвращает
Значение дельты. Положительное, если движение было по часовой стрелке, отрицательное — против часовой.
destroy()
Уничтожает этот Body.
Сначала он вызывает Group.removeFromHash, если Game Object, к которому принадлежит этот Body, является частью группы.
Затем он обнуляет ссылку на Game Object, и обнуляет ссылку Body.sprite.
getBounds(obj) → {object}
Возвращает границы этого физического тела.
Используется только внутренне методами столкновений World.
Параметры
| Имя | Тип | Описание |
|---|---|---|
obj | object | Объект, в котором нужно установить значения границ. |
Возвращает
Объект, переданный этому методу.
hitTest(x, y) → {boolean}
Проверяет, лежит ли мировая точка внутри этого Body.
Параметры
| Имя | Тип | Описание |
|---|---|---|
x | number | Мировое значение координаты x для проверки. |
y | number | Мировое значение координаты y для проверки. |
Возвращает
True, если заданные координаты находятся внутри этого Body, в противном случае false.
moveFrom(duration, speed, direction) → {boolean}
Примечание: Этот метод является экспериментальным и может быть изменён или удалён в будущих выпусках.
Этот метод перемещает Body в заданном направлении на указанное время.
Он работает, устанавливая скорость Body и внутренний таймер, а затем
отслеживая продолжительность каждый кадр. Когда время истекает, движение
останавливается, и отправляется сигнал Body.onMoveComplete.
Движение также останавливается, если Body сталкивается или перекрывает любой другой Body.
Вы можете контролировать, должна ли скорость быть сброшена к нулю при столкновении,
используя свойство Body.stopVelocityOnCollide.
Остановите движение в любое время, вызвав Body.stopMovement.
Вы можете необязательно установить скорость в пикселях в секунду. Если не указано,
будет использовано текущее значение Body.speed. Если оно равно нулю, функция вернёт false.
Обратите внимание, что из-за временных ограничений браузера необходимо учитывать
отклонение от фактического момента истечения времени. В зависимости от системы оно
может составлять до +- 50 мс. Также этот метод не учитывает другие силы,
действующие на Body, такие как гравитация, сопротивление или maxVelocity, все
из которых могут повлиять на движение.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
duration | integer | Продолжительность движения в мс. | |
speed | integer | <optional> | Скорость движения в пикселях в секунду. Если не указано, используется |
direction | integer | <optional> | Угол движения. Если не указано, используется |
Возвращает
True, если движение успешно началось, в противном случае false.
moveTo(duration, distance, direction) → {boolean}
- Исходный код: physics/arcade/Body.js (Строка 953)
- Исходный код: physics/arcade/Body.js (Строка 1221)
- Исходный код: physics/arcade/Body.js (Строка 1209)
- Исходный код: physics/arcade/Body.js (Строка 1233)
- Внутренний:
- Этот член является внутренним (защищённым) и может быть изменён или удалён в будущем.
- Исходный код: physics/arcade/Body.js (Строка 709)
- Внутренний:
- Этот член является внутренним (защищённым) и может быть изменён или удалён в будущем.
- Исходный код: physics/arcade/Body.js (Строка 552)
- Исходный код: physics/arcade/Body.js (Строка 1424)
- Исходный код: physics/arcade/Body.js (Строка 1470)
- Исходный код: physics/arcade/Body.js (Строка 1130)
Примечание: Этот метод экспериментальный и может быть изменён или удалён в будущих выпусках.
Этот метод перемещает тело в заданном направлении на указанный период.
Он работает, устанавливая скорость тела и внутренний счётчик расстояния.
Расстояние отслеживается на каждом кадре. Когда расстояние равно
указанному в этом вызове, движение останавливается, и отправляется сигнал Body.onMoveComplete.
Движение также останавливается, если тело сталкивается или перекрывается с другим телом.
Вы можете управлять тем, должна ли скорость сбрасываться до нуля при столкновении,
используя свойство Body.stopVelocityOnCollide.
Остановите движение в любое время, вызвав Body.stopMovement.
Обратите внимание, что из-за тайминга браузера вы должны учесть возможные
отклонения во времени фактического истечения расстояния.
Примечание: Этот метод не учитывает другие силы, действующие
на тело, такие как гравитация, сопротивление или максимальная скорость, все из которых
могут повлиять на движение.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
duration | целое число | Продолжительность движения в мс. | |
distance | целое число | Расстояние в пикселях, на которое переместится тело. | |
direction | целое число | <опционально> | Угол движения. Если не указан, используется |
Возвращаемое значение
True, если движение успешно началось, в противном случае false.
onCeiling() → {boolean}
Возвращает true, если верхняя часть этого тела соприкасается либо с границами мира, либо с плиткой.
Возвращаемое значение
True, если соприкасается либо с границами мира, либо с плиткой.
onFloor() → {boolean}
Возвращает true, если нижняя часть этого тела соприкасается либо с границами мира, либо с плиткой.
Возвращаемое значение
True, если соприкасается либо с границами мира, либо с плиткой.
onWall() → {boolean}
Возвращает true, если любая сторона этого тела соприкасается либо с границами мира, либо с плиткой.
Возвращаемое значение
True, если соприкасается либо с границами мира, либо с плиткой.
<внутренний> postUpdate()
Внутренний метод.
<внутренний> preUpdate()
Внутренний метод.
render(context, body, color, filled)
Отображение тела спрайта.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
context | объект | Контекст для отображения. | ||
body | Phaser.Physics.Arcade.Body | Тело, для которого отображается информация. | ||
color | строка | <опционально> | 'rgba(0,255,0,0.4)' | Цвет отладочной информации для отображения (формат строки цвета CSS). |
filled | boolean | <опционально> | true | Отображать объект как заполненный (по умолчанию, true) или обведённый (false). |
renderBodyInfo(body, x, y, color)
Отображение физических данных тела спрайта как текста.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
body | Phaser.Physics.Arcade.Body | Тело, для которого отображается информация. | ||
x | число | Позиция x отладочной информации для отображения. | ||
y | число | Позиция y отладочной информации для отображения. | ||
color | строка | <опционально> | 'rgb(255,255,255)' | Цвет отладочной информации для отображения (формат строки цвета CSS). |
reset(x, y)
Сбрасывает все значения тела (скорость, ускорение, вращение и т.д.).
Параметры
| Имя | Тип | Описание |
|---|---|---|
x | число | Новая позиция x тела. |
y | число | Новая позиция y тела. |
setCircle(radius, offsetX, offsetY)
Устанавливает это тело как использующее круг заданного радиуса для всех столкновений вместо прямоугольника.
Радиус задаётся в пикселях и представляет расстояние от центра круга до края.
Вы также можете контролировать смещение по оси x и y, которое представляет позицию тела относительно верхнего левого угла спрайта.
Чтобы изменить тело обратно на прямоугольник, вызовите Body.setSize.
Примечание: Круговое столкновение происходит только с другими телами аркадной физики, оно не
работает с картами плиток, где поддерживается только прямоугольное столкновение.
- Исходный код: physics/arcade/Body.js (Строка 1084)
- Исходный код: physics/arcade/Body.js (Строка 1040)
- Исходный код: physics/arcade/Body.js (Строка 681)
- Внутренний:
- Этот член является внутренним (защищённым) и может быть изменён или удалён в будущем.
- Исходный код: physics/arcade/Body.js (Строка 508)
- Внутренний:
- Этот член является внутренним (защищённым) и может быть изменён или удалён в будущем.
- Исходный код: physics/arcade/Body.js (Строка 640)
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
radius | число | <необязательно> | Радиус тела в пикселях. Передайте значение ноль/неопределенное, чтобы тело не использовало окружность для столкновений. |
offsetX | число | <необязательно> | Смещение по оси X тела от позиции спрайта. |
offsetY | число | <необязательно> | Смещение по оси Y тела от позиции спрайта. |
setSize(ширина, высота, смещениеX, смещениеY)
Вы можете изменить размер физического тела на любые необходимые размеры.
Это позволяет сделать его меньше или больше, чем родительский спрайт.
Вы также можете управлять смещением по осям X и Y тела. Это положение
тела относительно верхнего левого угла текстуры спрайта.
Например: Если у вас есть спрайт с текстурой размером 80x100,
и вы хотите, чтобы физическое тело было размером 32x32 пикселя посередине текстуры, вы бы сделали:
setSize(32, 32, 24, 34)
Где первые два параметра — это новый размер тела (32x32 пикселя).
24 — горизонтальное смещение тела от верхнего левого угла текстуры спрайта, а 34
— вертикальное смещение.
Вызывая setSize на теле, у которого уже был setCircle , сбросятся все свойства окружности,
сделав это тело прямоугольным снова.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
width | число | Ширина тела. | |
height | число | Высота тела. | |
offsetX | число | <необязательно> | Смещение по оси X тела от верхнего левого угла текстуры спрайта. |
offsetY | число | <необязательно> | Смещение по оси Y тела от верхнего левого угла текстуры спрайта. |
stopMovement(остановитьСкорость)
Если это тело движется в результате вызова moveTo или moveFrom (т.е. у него
значение Body.isMoving равно true), то вызов этого метода остановит движение до
истечения времени или расстояния.
Диспетчится сигнал onMoveComplete.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
stopVelocity | логическое | <необязательно> | Нужно ли установить Body.velocity равным нулю? |
<внутренний> updateBounds()
Внутренний метод.
<внутренний> updateMovement()
Внутренний метод.
© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Physics.Arcade.Body.html