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-нод свойства, которые можно считывать, устанавливать и анимировать. Существуют следующие типы свойств:

  • Определенные системой трансформации игровых объектов (положение, вращение и масштаб) и специфические свойства компонентов (например, размер пикселя спрайта или масса объекта столкновения)
  • Определяемые пользователем скриптовые свойства, задаваемые в Lua-скриптах (подробнее в руководстве по свойствам скрипта)
  • Свойства 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-ноды

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
Компонент прозрачности (alpha)

СВОЙСТВА 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()
OSZAR »