Vlastnosti tělesa

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#

GML
body.set_velocity(x, y, z)
body.get_velocity()
body.set_angular_velocity(x, y, z)
body.get_angular_velocity()
MetodaNávrat
set_velocity / set_angular_velocityBoolean
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#

GML
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íkSignaturaKontrakt operace
JoltBody.get_angular_velocityJoltBody.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_velocityJoltBody.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_velocityJoltBody.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_velocityJoltBody.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ě.