Zdroje a assety

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#

Syntax
jolt_asset_create_body(data, motion, [options]);
ArgumentTypPopis
dataStructData vrácená jolt_asset_load(). Při vytváření se znovu validují.
motionRealJOLT_MOTION_STATIC / JOLT_MOTION_DYNAMIC / JOLT_MOTION_KINEMATIC
optionsStruct | undefinedVOLITELNÉ. 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.

GML
// 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.

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íkSignaturaKontrakt operace
jolt_asset_create_bodyjolt_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í.