Vlastnosti tělesa

Síly

Aplikuje průběžnou linear force nebo torque na Dynamic body.

Forces simulace integruje v čase. Aplikujte je během simulačních aktualizací pro trvalý thrust, pružiny, drag nebo vlastní gravitaci.

High-Level API#

GML
body.add_force(x, y, z)
body.add_force_at_position(fx, fy, fz, px, py, pz)
body.add_force_local(fx, fy, fz, local_x, local_y, local_z)
body.add_torque(x, y, z)

Souřadnicové prostory#

MetodaProstor vektoruBod aplikace
add_forceWorld-space forceTěžiště
add_force_at_positionWorld-space forceWorld-space bod
add_force_localWorld-space forceLokální bod převedený body rotací a originem
add_torqueWorld-space torquePřímý rotační vstup

Local helper mění pouze application point; směr force zůstává world-space. Force mimo těžiště může vytvářet linear i angular acceleration. Všechny komponenty musí být konečné.

Force, mass a timestep#

Při stejné force těžší body zrychluje méně. Force není okamžitá změna velocity; výsledek závisí na physics timestep a době působení. Při doporučené konvenci metr/kilogram odpovídá force newtonům a torque newtonmetrům.

Příklad#

GML
// Step event: trvalý tah vzhůru.
body.add_force(0, 0, 45);

// World-space force v lokálním bodě body.
body.add_force_local(12, 0, 0, 0, -0.5, 0);

// Čistá rotační síla.
body.add_torque(0, 0, 8);

Low-Level / Advanced API#

Low-level at_position používá world-space bod. add_force_local je high-level convenience helper.

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.add_forceJoltBody.add_force(x, y, z)Boolean; Dynamic těleso, světová síla XYZ v N. Bez bodu působí v COM; at_position světový bod m, local převádí pouze místní bod m, nikoliv směr síly. Obnovuj sílu pro každý požadovaný fyzikální krok.
JoltBody.add_force_at_positionJoltBody.add_force_at_position(fx, fy, fz, px, py, pz)Boolean; Dynamic těleso, světová síla XYZ v N. Bez bodu působí v COM; at_position světový bod m, local převádí pouze místní bod m, nikoliv směr síly. Obnovuj sílu pro každý požadovaný fyzikální krok.
JoltBody.add_torqueJoltBody.add_torque(x, y, z)Boolean; Dynamic těleso, světový moment N·m / úhlový impuls N·m·s. Moment je krokový, impuls jednorázový.