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, які можна читати, встановлювати й анімувати. Існують такі типи властивостей:
Коли ви наводите вказівник на поле введення числової властивості, з’являється маркер перетягування. Ви можете збільшувати/зменшувати її значення, перетягуючи маркер праворуч/ліворуч або вгору/вниз відповідно.
Залежно від того, де міститься властивість, доступ до неї здійснюється через універсальну функцію або спеціалізовану функцію для цієї властивості. Багато властивостей можна анімувати автоматично. Наполегливо рекомендуємо анімувати властивості за допомогою вбудованої системи, а не змінювати їх самостійно (усередині функції 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(). Невелика частина властивостей доступна лише для читання.
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().
ВЛАСТИВОСТІ КОМПОНЕНТА СПРАЙТА
| властивість | опис | тип | |
|---|---|---|---|
| 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 |
| texture0–texture15 | Хеші шляхів до текстур моделі. | 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.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:
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 | Відстані від країв вузла slice9. | vector4 |
gui.get_slice9() gui.set_slice9() |