Vlastnosti tělesa

Hmotnost

Nastavuje mass a odpovídající inertia Dynamic JoltBody.

Mass ovlivňuje zrychlení od sil, collision response, constraints a gravitační sílu. Je dostupná pouze Dynamic bodies s motion properties.

High-Level API#

GML
body.set_mass(value)
body.get_mass()

Validace a chování#

  • value musí být konečné a striktně větší než 0.
  • set_mass() a get_mass() selžou pro Static a Kinematic bodies.
  • Nastavení mass přepočítá native MassProperties shape na požadovanou hmotnost a současně upraví inertia.
  • Povolené stupně volnosti body zůstávají zachované.
  • Změna mass nemění velikost ani collision shape.

Creation option#

GML
var heavy_box = jolt_box_create_dynamic(0, 0, 4, 1, 1, 1, {mass: 25});
heavy_box.set_mass(40);
show_debug_message(heavy_box.get_mass());

Bez explicitní mass option odvodí Jolt mass properties z collision shape. Pokud je mass pro nové body neplatná, high-level vytvoření je atomické: body se zničí a creator vrátí undefined.

Mass, force a impulse#

VstupVliv massTypické použití
ForceS rostoucí mass klesá zrychleníTrvalý thrust, kompenzace gravitace
ImpulseS rostoucí mass klesá změna velocityÚder, skok, exploze
Torque / angular impulsePoužívá přepočítaný inertia tensorRotační působení

Low-Level / Advanced API#

Inverse mass je pouze pro čtení. Bridge pokus o její nastavení odmítá; použijte set_mass. Low-level funkce používají číselné handly a native error state.

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_massJoltBody.get_mass()Set kladná konečná hmotnost kg pouze Dynamic → Boolean. Getter kg nebo undefined; Static/Kinematic nemají běžnou dynamickou hmotnost.
JoltBody.set_massJoltBody.set_mass(value)Set kladná konečná hmotnost kg pouze Dynamic → Boolean. Getter kg nebo undefined; Static/Kinematic nemají běžnou dynamickou hmotnost.