‹›
Stav tělesa

Propojení a životní cyklus

Reference a použití: Propojení a životní cyklus.

APIChování
body.bind_instance(instance, use_as_user_data=true)Přiřadí živou GameMaker instanci; volitelně použije její ID jako user data.
body.sync()Zkopíruje pozici do x/y/z vlastníka a quaternion do jolt_rotation_x/y/z/w.
body.unbind_instance()Odpojí vazbu bez zničení tělesa nebo instance.
body.destroy()Uvolní managed fyzikální těleso; životnost GameMaker instance řídí volající.
GML
// Create event of the visual instance, after physics has started.
body = jolt_box_create_dynamic(x, y, 2, 1, 1, 1);
if (!is_undefined(body)) body.bind_instance(id);

// After the central physics update, if an explicit sync is needed:
if (!is_undefined(body) && body.is_valid()) body.sync();

// Cleanup event:
if (!is_undefined(body)) body.destroy();

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
JoltBody.bind_instanceJoltBody.bind_instance(instance, use_as_user_data = true)Bind živé instance, use_as_user_data default true; Boolean. Unbind true, nesmaže user_data ani instanci. Vazba není převzetí životnosti.
JoltBody.destroyJoltBody.destroy()Boolean, opakovaně true. Odstraní native těleso, připojené senzory/helpers a vazby; zneplatní závislé constraints/vehicles/conveyors/scales. Navázanou GameMaker instanci neničí.
JoltBody.get_native_handleJoltBody.get_native_handle()Uložený body/world handle pokud valid, jinak 0. Nepřenášej přes destroy či restart světa.
JoltBody.is_validJoltBody.is_valid()Boolean valid flag + handle>0 + managed svět spuštěn. Není to nové nativní ověření handle; operace navíc ověřují příslušnost ke světu.
JoltBody.syncJoltBody.sync()Boolean; zapíše x/y/z a jolt_rotation_x/y/z/w do navázané instance. Vyžaduje živou vazbu; není automatické renderování.
JoltBody.unbind_instanceJoltBody.unbind_instance()Bind živé instance, use_as_user_data default true; Boolean. Unbind true, nesmaže user_data ani instanci. Vazba není převzetí životnosti.