Rychlost
Čte nebo nastavuje linear a angular velocity body.
Linear velocity používá world-space vzdálenostní jednotky za sekundu. Angular velocity je world-space rotační vektor v radiánech za sekundu.
High-Level API#
body.set_velocity(x, y, z)
body.get_velocity()
body.set_angular_velocity(x, y, z)
body.get_angular_velocity()Návratové hodnoty#
| Metoda | Návrat |
|---|---|
| set_velocity / set_angular_velocity | Boolean |
| get_velocity | {x,y,z} nebo undefined |
| get_angular_velocity | {x,y,z} nebo undefined |
Omezení a jednotky#
- Všechny komponenty musí být konečné.
- Settery odmítají Static bodies.
- Dynamic a Kinematic přijímají explicitní velocity.
- Linear velocity je ve world-space jednotkách/s; při doporučeném měřítku v m/s.
- Angular velocity je v rad/s, nikoli ve stupních/s.
- Přímé nastavení velocity nahradí současnou hodnotu, nepřičítá k ní.
Creation options#
var body = jolt_sphere_create_dynamic(0, 0, 4, 0.5, {
velocity: {x:3, y:0, z:2},
angular_velocity: {x:0, y:2.5, z:0}
});Kinematic pohyb#
move_kinematic() a move_kinematic_euler() vypočítají pohyb k target transformu během kladného časového intervalu. Obvykle jsou vhodnější než teleport Kinematic body, protože Dynamic kontakty výsledný pohyb vnímají.
Low-Level / Advanced API#
K dispozici jsou také low-level component gettery s příponami _x, _y a _z.
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ík | Signatura | Kontrakt operace |
|---|---|---|
| JoltBody.get_angular_velocity | JoltBody.get_angular_velocity() | Světové vektory XYZ: lineární m/s, úhlové rad/s. Setter Boolean; getter {x, y, z} nebo undefined při chybě. |
| JoltBody.get_velocity | JoltBody.get_velocity() | Světové vektory XYZ: lineární m/s, úhlové rad/s. Setter Boolean; getter {x, y, z} nebo undefined při chybě. |
| JoltBody.set_angular_velocity | JoltBody.set_angular_velocity(x, y, z) | Světové vektory XYZ: lineární m/s, úhlové rad/s. Setter Boolean; getter {x, y, z} nebo undefined při chybě. |
| JoltBody.set_velocity | JoltBody.set_velocity(x, y, z) | Světové vektory XYZ: lineární m/s, úhlové rad/s. Setter Boolean; getter {x, y, z} nebo undefined při chybě. |