Stav tělesa
Kinematický pohyb
Kinematický cíl odvodí rychlost potřebnou k dosažení pozice a rotace během kladné zadané doby. Kontakty tak mohou přenést pohyb plošiny na Dynamic tělesa. Opakované teleportování přes set_position() nevyjadřuje stejný pohyb s rychlostí.
body.move_kinematic(x, y, z, qx, qy, qz, qw, seconds)
body.move_kinematic_euler(x, y, z, rx, ry, rz, seconds)Pozice jsou ve světových souřadnicích. Quaternion má pořadí x,y,z,w; Euler úhly jsou XYZ ve stupních. Doba je v sekundách, ne mikrosekundách. Zadejte cíl odpovídající simulovanému intervalu a pak aktualizujte fyziku; absolutní cílovou pozici nenásobte delta_time.
// One controlled 1/60-second interval; platform is Kinematic.
if (!platform.move_kinematic_euler(2, 0, 1, 0, 0, 0, 1/60)) {
show_debug_message(jolt_get_error_message());
}
jolt_update(1/60);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.move_kinematic | JoltBody.move_kinematic(x, y, z, qx, qy, qz, qw, seconds) | Boolean; pouze Kinematic. Světová cílová XYZ m, quaternion XYZW nebo Euler XYZ°, kladný čas v s. Vypočítá rychlost pro dosažení cíle; není to set_position teleport. |
| JoltBody.move_kinematic_euler | JoltBody.move_kinematic_euler(x, y, z, rx, ry, rz, seconds) | Boolean; pouze Kinematic. Světová cílová XYZ m, quaternion XYZW nebo Euler XYZ°, kladný čas v s. Vypočítá rychlost pro dosažení cíle; není to set_position teleport. |