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í.

GML
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.

GML
// 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íkSignaturaKontrakt operace
JoltBody.move_kinematicJoltBody.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_eulerJoltBody.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.