jolt_asset_create_body
Vytvoří spravované složené těleso z ověřených dat assetu.
Nejprve úspěšně spusťte jolt_start(). Funkce data znovu ověří, vytvoří jedno těleso s compound tvarem a uvolní dočasný builder.
Syntax#
jolt_asset_create_body(data, motion, [options]);| Argument | Typ | Popis |
|---|---|---|
| data | Struct | Data vrácená jolt_asset_load(). Při vytváření se znovu validují. |
| motion | Real | JOLT_MOTION_STATIC / JOLT_MOTION_DYNAMIC / JOLT_MOTION_KINEMATIC |
| options | Struct | undefined | VOLITELNÉ. Výchozí undefined. options.position je {x,y,z}, výchozí {x:0,y:0,z:0}; vynechaná rotace je identitní. Další nastavení high-level tělesa viz Compound Shapes a Body Properties. |
Návratová hodnota#
JoltBody | undefined
Úspěch vrací JoltBody vlastnící dokončený compound tvar. Chyba vrací undefined; ihned čtěte jolt_get_error(). Při neúspěšném vytvoření funkce uvolňuje rozpracované zdroje.
Životnost#
Každé volání vytváří samostatné těleso. Volající odpovídá za body.destroy(), případně za uvolnění světa přes jolt_stop(). Těleso vlastní vytvořenou geometrii, nikoli vstupní JSON struct.
Příklad#
Do Included Files přidejte vlastní exportovaný asset jako props/crate.jolt.json. Příklad předpokládá tento soubor; vytváření tělesa navíc vyžaduje běžící svět.
// The default world has already been started successfully.
var asset = jolt_asset_load("props/crate.jolt.json");
if (!is_undefined(asset)) {
var body = jolt_asset_create_body(asset, JOLT_MOTION_DYNAMIC, {position:{x:0,y:0,z:3}});
if (is_undefined(body)) {
var error = jolt_get_error();
show_debug_message(error.message);
}
else {
// Keep body while the object is in use; release it when finished.
body.destroy();
}
}
else {
var error = jolt_get_error();
show_debug_message(error.message);
}Ukázka vytvoří dynamické těleso ve výšce 3 a ukáže jeho uvolnění. Ve hře přesuňte destroy do okamžiku, kdy těleso už nepotřebujete.
Související reference#
Ověřené kontrakty operací#
Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.
| Symbol / vlastník | Signatura | Kontrakt operace |
|---|---|---|
| jolt_asset_create_body | jolt_asset_create_body(data, motion, options = undefined) | Asset + motion + volitelné options, pozice options.position {x, y, z} default 0. Vrací JoltBody nebo undefined; transakčně sestaví kolize, nikoliv všechny helpery assetu. Starý 5/6argumentový overload zůstává kompatibilní. |