Manuals
Manuals




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 надає доступ до властивостей ігрових об’єктів (game object), компонентів (component) і вузлів GUI, які можна читати, встановлювати й анімувати. Існують такі типи властивостей:

  • Визначені системою трансформації ігрових об’єктів (позиція, поворот і масштаб) та властивості, специфічні для компонентів (наприклад, розмір спрайта в пікселях або маса об’єкта колізій)
  • Користувацькі властивості компонентів-скриптів, визначені у скриптах Lua (докладніше див. у документації з властивостей скриптів)
  • Властивості вузлів GUI
  • Константи шейдерів, визначені в шейдерах і файлах матеріалів (докладніше див. у документації з матеріалів)

Коли ви наводите вказівник на поле введення числової властивості, з’являється маркер перетягування. Ви можете збільшувати/зменшувати її значення, перетягуючи маркер праворуч/ліворуч або вгору/вниз відповідно.

Залежно від того, де міститься властивість, доступ до неї здійснюється через універсальну функцію або спеціалізовану функцію для цієї властивості. Багато властивостей можна анімувати автоматично. Наполегливо рекомендуємо анімувати властивості за допомогою вбудованої системи, а не змінювати їх самостійно (усередині функції update()), як із міркувань продуктивності, так і для зручності.

Складені властивості типу vector3, vector4 або quaternion також надають доступ до своїх складових (x, y, z і w). Ви можете звертатися до складових окремо, додаючи до назви властивості крапку (.) та назву складової. Наприклад, щоб задати складову x позиції ігрового об’єкта:

-- Set the x position of "game_object" to 10.
go.set("game_object", "position.x", 10)

Функції go.get(), go.set() і go.animate() приймають посилання як перший параметр та ідентифікатор властивості як другий. Посилання ідентифікує ігровий об’єкт або компонент і може бути рядком, хешем або URL. URL докладно пояснено в посібнику з адресації. Ідентифікатор властивості — це рядок або хеш із назвою властивості:

-- Set the x-scale of the sprite component
local url = msg.url("#sprite")
local prop = hash("scale.x")
go.set(url, prop, 2.0)

Для вузлів GUI сам вузол передається як перший параметр до спеціалізованої функції для властивості або до універсальних функцій gui.get() і gui.set():

-- Get the color of the button
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(). Невелика частина властивостей доступна лише для читання.

get
Можна читати за допомогою go.get().
get+set
Можна читати за допомогою go.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().

ВЛАСТИВОСТІ КОМПОНЕНТА СПРАЙТА

властивість опис тип  
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 Частота кадрів покадрової анімації. number get+set

ВЛАСТИВОСТІ КОМПОНЕНТА ОБ’ЄКТА КОЛІЗІЙ

властивість опис тип  
mass Маса об’єкта колізій. number get
linear_velocity Поточна лінійна швидкість об’єкта колізій. vector3 get
angular_velocity Поточна кутова швидкість об’єкта колізій. vector3 get
linear_damping Лінійне демпфування об’єкта колізій. vector3 get+set
angular_damping Кутове демпфування об’єкта колізій. vector3 get+set

ВЛАСТИВОСТІ КОМПОНЕНТА МОДЕЛІ (3D)

властивість опис тип  
animation Поточна анімація. hash get
texture0texture15 Хеші шляхів до текстур моделі. hash get+set
cursor Позиція курсора відтворення (від 0 до 1). number get+set
playback_rate Швидкість відтворення анімації. Множник швидкості відтворення анімації. number get+set
material Матеріал, який використовує модель. hash get+set

ВЛАСТИВОСТІ КОМПОНЕНТА НАПИСУ

властивість опис тип  
scale Масштаб напису. vector3 get+set
scale.xy Масштаб напису вздовж осей 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 мають спеціалізовані функції читання й записування властивостей, як-от gui.get_position() і gui.set_position(). Перелічені нижче вбудовані властивості також можна читати й записувати за допомогою gui.get(node, property) і gui.set(node, property, value). Для інших значень вузлів усе ще можуть бути потрібні окремі функції. Для констант матеріалів на вузлах GUI також використовуються універсальні функції. Щоб звернутися до однієї складової векторної властивості, додайте її назву, наприклад gui.set(node, "color.x", 1).

Універсальні та спеціалізовані функції для властивостей не завжди використовують однакові типи значень. gui.get() повертає vector4 для властивостей position, scale, size і euler у повному складі, тоді як відповідні спеціалізовані функції повертають 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:

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 Поворот вузла. Функція читання повертає кватерніон; функція записування приймає кватерніон або кути Ейлера у вигляді вектора. 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 Відстані від країв вузла slice9. vector4 gui.get_slice9() gui.set_slice9()