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-нод сама нода передаётся первым параметром либо специализированной функции свойства, либо универсальным функциям gui.get() и gui.set():
-- Получить цвет кнопки
local node = gui.get_node("button")
local color = gui.get_color(node)
local same_color = gui.get(node, "color")
gui.set(node, "color.x", 1)
Все игровые объекты и некоторые типы компонентов имеют свойства, которые можно считывать и манипулировать ими во время выполнения. Считывать эти значения можно с помощью go.get(), а записывать — с помощью go.set(). В зависимости от типа значения свойства, значения можно анимировать с помощью go.animate(). Небольшой набор свойств доступен только для чтения.
getgo.get() можно считывать.get+setgo.get() можно считывать, записывать — с помощью go.set(). Числовые значения можно анимировать с помощью go.animate().СВОЙСТВА ИГРОВОГО ОБЪЕКТА
| Свойство | Описание | Тип | |
|---|---|---|---|
| position | Локальная позиция игрового объекта | vector3 |
get+set |
| rotation | Локальное вращение игрового объекта, выраженное в виде quaternion |
quaternion |
get+set |
| euler | Локальное вращение игрового объекта в углах Эйлера | vector3 |
get+set |
| scale | Локальное неоднородное масштабирование игрового объекта, выраженное в виде вектора, каждый компонент которого содержит множитель по соответствующей оси. Чтобы удвоить размер по осям X и Y, не изменяя Z, используйте vmath.vector3(2.0, 2.0, 1.0). |
vector3 |
get+set |
| scale.xy | Локальное неоднородное масштабирование игрового объекта по осям X и Y. Используйте это свойство или go.set_scale_xy(), если масштабирование по Z не требуется. |
vector3 |
get+set |
Существуют также специальные функции для работы с преобразованием игрового объекта: go.get_position(), go.set_position(), go.get_rotation(), go.set_rotation(), go.get_scale(), go.set_scale() и go.set_scale_xy().
СВОЙСТВА КОМПОНЕНТА SPRITE
| свойство | описание | тип | |
|---|---|---|---|
| size | Немасштабированный размер спрайта — его размер, взятый из исходного атласа. | vector3 |
get |
| image | Хэш пути к текстуре спрайта. | hash |
get |
| scale | Неравномерный масштаб спрайта. | vector3 |
get+set |
| scale.xy | Неравномерный масштаб спрайта вдоль осей X и Y. | vector3 |
get+set |
| material | Материал, используемый спрайтом. | hash |
get+set |
| cursor | Положение (от 0 до 1) курсора воспроизведения. | number |
get+set |
| playback_rate | Частота кадров анимации flipbook. | number |
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 |
СВОЙСТВА КОМПОНЕНТА MODEL (3D)
| Свойство | Описание | Тип | |
|---|---|---|---|
| animation | Текущая анимация. | hash |
get |
| texture0–texture15 | Хэши путей текстур модели. | hash |
get+set |
| cursor | Позиция (между 0–1) курсора воспроизведения | number |
get+set |
| playback_rate | Скорость воспроизведения анимации. Множитель к скорости воспроизведения анимации | number |
get+set |
| material | Материал, используемый моделью. | hash |
get+set |
СВОЙСТВА КОМПОНЕНТА LABEL
| Свойство | Описание | Тип | |
|---|---|---|---|
| scale | Масштаб метки | vector3 |
get+set |
| scale.xy | Масштаб надписи (label) вдоль осей X и Y. | vector3 |
get+set |
| color | Цвет метки | vector4 |
get+set |
| outline | Цвет контура метки | vector4 |
get+set |
| shadow | Цвет тени метки | vector4 |
get+set |
| size | Размер метки. Размер будет ограничивать текст, если включен перенос строки | vector3 |
get+set |
| material | Материал, используемый меткой. | hash |
get+set |
| font | Шрифт, используемый меткой. | hash |
get+set |
Для свойств GUI-нод существуют специализированные функции чтения и записи, например gui.get_position() и gui.set_position(). Перечисленные ниже встроенные свойства также можно читать и изменять универсальными функциями gui.get(node, property) и gui.set(node, property, value). Для других значений ноды всё ещё могут требоваться специализированные функции. Константы материала GUI-нод также используют универсальные функции. Чтобы обратиться к отдельному компоненту векторного свойства, добавьте его имя, например gui.set(node, "color.x", 1).
Универсальные и специализированные функции не всегда используют одинаковые типы значений. Для полных свойств position, scale, size и euler функция gui.get() возвращает vector4, а соответствующие специализированные функции — vector3. gui.set() принимает для этих свойств и vector3, и vector4. Универсальное свойство rotation использует кватернион; для задания вращения в градусах используйте euler.
position (или gui.PROP_POSITION)rotation (или gui.PROP_ROTATION)euler (или gui.PROP_EULER)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)leading (или gui.PROP_LEADING)tracking (или gui.PROP_TRACKING)slice9 (или gui.PROP_SLICE9)Следует отметить, что все значения цвета кодируются в vector4, компоненты которого соответствуют значениям RGBA:
xyzwСВОЙСТВА 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 | Вращение ноды. Функция чтения возвращает кватернион; функция записи принимает кватернион или углы Эйлера в виде вектора. | quaternion, vector3 или vector4 |
gui.get_rotation() gui.set_rotation() |
| euler | Вращение ноды в углах Эйлера, выраженных в градусах. | vector3 |
gui.get_euler() gui.set_euler() |
| 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() |
| leading | Масштаб межстрочного интервала текстовой ноды. | number |
gui.get_leading() gui.set_leading() |
| tracking | Масштаб межбуквенного интервала текстовой ноды. | number |
gui.get_tracking() gui.set_tracking() |
| slice9 | Расстояния от краёв ноды Slice 9. | vector4 |
gui.get_slice9() gui.set_slice9() |