This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold предоставляет для игровых объектов, компонентов и GUI-нод свойства, которые можно считывать, устанавливать и анимировать. Существуют следующие типы свойств:
В зависимости от того, где находится свойство, доступ к нему осуществляется через общую функцию или функцию, специфичную для данного свойства. Многие свойства могут быть автоматически анимированы. Анимация свойств с помощью встроенной системы настоятельно рекомендуется вместо самостоятельного манипулирования свойствами (внутри функции update()
), как по соображениям производительности, так и ради удобства.
Составные свойства типа vector3
, vector4
или quaternion
также раскрывают свои субкомпоненты (x
, y
, z
и w
). К этим компонентам можно обращаться по отдельности, дополняя имя точкой (.
) и именем компонента. Например, чтобы установить х-компонент позиции игрового объекта:
-- Установите позицию по x для "game_object" в значение 10.
go.set("game_object", "position.x", 10)
Функции go.get()
, go.set()
и go.animate()
принимают в качестве первого параметра ссылку, а в качестве второго — идентификатор свойства. Ссылка идентифицирует игровой объект или компонент и может быть строкой, хэшем или URL. URL-адреса подробно описаны в руководстве по адрессации. Идентификатор свойства — это строка или хэш, дающий свойству имя:
-- Установите масштаб по X для спрайта
local url = msg.url("#sprite")
local prop = hash("scale.x")
go.set(url, prop, 2.0)
Для GUI-нод идентификатор ноды предоставляется в качестве первого параметра специфичной для свойства функции:
-- Получить цвет кнопки
local node = gui.get_node("button")
local color = gui.get_color(node)
Все игровые объекты и некоторые типы компонентов имеют свойства, которые можно считывать и манипулировать ими во время выполнения. Считывать эти значения можно с помощью go.get()
, а записывать — с помощью go.set()
. В зависимости от типа значения свойства, значения можно анимировать с помощью go.animate()
. Небольшой набор свойств доступен только для чтения.
get
go.get()
можно считывать.get+set
go.get()
можно считывать, записывать — с помощью go.set()
. Числовые значения можно анимировать с помощью go.animate()
.Существуют также легаси-функции для чтения и записи свойств игровых объектов. Это go.get_position()
, go.set_position()
, go.get_rotation()
, go.set_rotation()
и др.
СВОЙСТВА ИГРОВОГО ОБЪЕКТА
Свойство | Описание | Тип | |
---|---|---|---|
position | Локальная позиция игрового объекта | vector3 |
get+set |
rotation | Локальное вращение игрового объекта, выраженное в виде кватерниона | quaternion |
get+set |
euler | Локальное вращение игрового объекта в углах Эйлера | vector3 |
get+set |
scale | Локальное неоднородное масштабирование игрового объекта, выраженное в виде вектора, каждый компонент которого содержит множитель по каждой оси. Чтобы удвоить размер по осям x и y, предоставьте vmath.vector3(2.0, 2.0, 0) | vector3 |
get+set |
СВОЙСТВА КОМПОНЕНТА SPRITE
Свойство | Описание | Тип | |
---|---|---|---|
size | Немасштабируемый размер спрайта — его размер, взятый из исходного атласа | vector3 |
get |
texture0 | Хэш пути текстуры спрайта | hash |
get |
scale | Неоднородное масштабирование спрайта | vector3 |
get+set |
СВОЙСТВА КОМПОНЕНТА COLLISION OBJECT
Свойство | Описание | Тип | |
---|---|---|---|
mass | Масса объекта столкновения | number |
get |
linear_velocity | Текущая линейная скорость объекта столкновения | vector3 |
get |
angular_velocity | Текущая угловая скорость объекта столкновения | vector3 |
get |
linear_damping | Линейное затухание объекта столкновения | vector3 |
get+set |
angular_damping | Угловое затухание объекта столкновения | vector3 |
get+set |
СВОЙСТВА КОМПОНЕНТА SPINE MODEL
Свойство | Описание | Тип | |
---|---|---|---|
animation | Текущая анимация | hash |
get |
skin | Текущий примененный скин модели (не может быть анимирован!) | hash |
get+set |
cursor | Текущее положение (от 0 до 1) курсора воспроизведения анимации | number |
get+set |
playback_rate | Скорость воспроизведения анимации. Множитель к скорости воспроизведения анимации | number |
get+set |
СВОЙСТВА КОМПОНЕНТА MODEL (3D)
Свойство | Описание | Тип | |
---|---|---|---|
animation | Текущая анимация. | hash |
get |
texture0 | Хэш пути текстуры модели | hash |
get |
cursor | Позиция (между 0–1) курсора воспроизведения | number |
get+set |
playback_rate | Скорость воспроизведения анимации. Множитель к скорости воспроизведения анимации | number |
get+set |
СВОЙСТВА КОМПОНЕНТА LABEL
Свойство | Описание | Тип | |
---|---|---|---|
scale | Масштаб метки | vector3 |
get+set |
color | Цвет метки | vector4 |
get+set |
outline | Цвет контура метки | vector4 |
get+set |
shadow | Цвет тени метки | vector4 |
get+set |
size | Размер метки. Размер будет ограничивать текст, если включен перенос строки | vector3 |
get+set |
GUI-ноды также содержат свойства, но они считываются и записываются через специальные функции — так называемые “геттеры” и “сеттеры”. Для каждого свойства существует одна get-функция и одна set-функция. Также определен набор констант, которые используются в качестве ссылок на свойства при их анимировании. Если необходимо сослаться на отдельные компоненты свойства, следует использовать строковое имя свойства или хэш строкового имени.
position
(или gui.PROP_POSITION
)rotation
(или gui.PROP_ROTATION
)scale
(или gui.PROP_SCALE
)color
(или gui.PROP_COLOR
)outline
(или gui.PROP_OUTLINE
)shadow
(или gui.PROP_SHADOW
)size
(или gui.PROP_SIZE
)fill_angle
(или gui.PROP_FILL_ANGLE
)inner_radius
(или gui.PROP_INNER_RADIUS
)slice9
(или gui.PROP_SLICE9
)Следует отметить, что все значения цвета кодируются в vector4, компоненты которого соответствуют значениям RGBA:
x
y
z
w
СВОЙСТВА GUI-НОД
Свойство | Описание | Тип | |
---|---|---|---|
color | Цвет грани ноды | vector4 |
gui.get_color() gui.set_color() |
outline | Цвет контура ноды | vector4 |
gui.get_outline() gui.set_outline() |
position | Положение ноды | vector3 |
gui.get_position() gui.set_position() |
rotation | Вращение ноды, выраженное в углах Эйлера — градусах, повернутых вокруг каждой оси | vector3 |
gui.get_rotation() gui.set_rotation() |
scale | Масштаб ноды, выраженный в виде множителя по каждой оси | vector3 |
gui.get_scale() gui.set_scale() |
shadow | Цвет тени ноды | vector4 |
gui.get_shadow() gui.set_shadow() |
size | Немасштабируемый размер ноды | vector3 |
gui.get_size() gui.set_size() |
fill_angle | Угол заливки ноды Pie, выраженный в градусах против часовой стрелки | number |
gui.get_fill_angle() gui.set_fill_angle() |
inner_radius | Внутренний радиус ноды Pie | number |
gui.get_inner_radius() gui.set_inner_radius() |
slice9 | The edge distances of a slice9 node. | vector4 |
gui.get_slice9() gui.set_slice9() |
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB