Vlastnosti tělesa

Gravitace

Nastavuje world gravity a násobek gravitace jednotlivého body.

Managed world používá default {x:0,y:0,z:-9.81}. gravity_factor body násobí tento vektor, aniž by měnil globální world nastavení.

World gravity při spuštění#

GML
jolt_start({
    gravity_x: 0,
    gravity_y: 0,
    gravity_z: -9.81
});

gravity_x, gravity_y a gravity_z se předají při vytvoření default worldu. High-level runtime po startu nevystavuje setter world gravity; pro jiný globální vektor world zastavte a vytvořte znovu.

Per-body API#

GML
body.set_gravity_factor(value)
body.get_gravity_factor()

Chování factoru#

FactorEfekt
1Plná world gravity; default
0Žádné zrychlení od world gravity
0..1Oslabená gravitace
> 1Zesílená gravitace
< 0Obrácený směr gravitace

Factor přijímá libovolný konečný Real. Vyžaduje motion properties a význam má pro simulovaný non-Static motion. Gravitační zrychlení nezávisí na mass, ekvivalentní kompenzační force je však hmotnosti úměrná.

Příklad#

GML
var moon_crate = jolt_box_create_dynamic(0, 0, 5, 1, 1, 1, {
    mass: 4,
    gravity_factor: 0.165
});

moon_crate.set_gravity_factor(0);

Low-Level / Advanced API#

Settery vracejí true při úspěchu a false při neplatném vstupu, invalidním nebo stale body či nepodporovaném motion typu. Gettery vracejí požadovanou hodnotu nebo undefined při selhání. High-level chybu zjistíte přes jolt_get_error().

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.get_gravity_factorJoltBody.get_gravity_factor()Konečný násobitel gravitace; setter Boolean, getter číslo nebo undefined. 0 vypne gravitační zrychlení, není to změna hmotnosti.
JoltBody.set_gravity_factorJoltBody.set_gravity_factor(value)Konečný násobitel gravitace; setter Boolean, getter číslo nebo undefined. 0 vypne gravitační zrychlení, není to změna hmotnosti.