Pomocné skripty · Fyzické ovládací prvky

Motor fáze

Motor fáze najde konkrétní dosažitelnou orientaci v zadaném směru a podrží vybranou otáčku.

GML
control.set_phase_motor(options)
control.get_phase_motor()
PoložkaVýznam / výchozí hodnota
enabled / phasetrue / 0; 0 ≤ phase < 1
direction"shortest" / "positive" / "negative"; default "shortest"
speed360 °/s; 0 < speed ≤ 10⁶
max_torque / frequency / damping10 N·m / 5 Hz / 1
resolved_anglePouze getter: vybraný absolutní logický cíl ve stupních.

phase:0.25 znamená čtvrt otáčky. Hodnota 1 není platná; pro celou otáčku použijte fázi 0. shortest volí kratší cestu, při přesné půlotáčce kladný směr. positive volí cíl v kladném směru a negative v záporném. Tato volba řeší cílovou otáčku, nepředstavuje trvalý jednosměrný pohon.

Příklad#

GML
wheel = jolt_control_wheel({phase_motor: {
    phase: 0.25, direction: "shortest", speed: 90, max_torque: 5
}});
var motor = wheel.get_phase_motor();
show_debug_message(motor.resolved_angle);

Cílová otáčka se uloží. Překmit, pozastavení vyšší prioritou a změna síly či rychlosti ji nezmění. Přepočet nastává při první konfiguraci, změně phase/direction, opětovném zapnutí a set_zero(). To brání nechtěnému honění další otáčky při malém překmitu.

enabled znamená uložený požadavek, active aktuální vlastnictví pohonu. Vyšší priorita může motor pozastavit. Position a phase navíc vracejí mode: off / paused / velocity / position, reached, angle_tolerance (0.1°) a speed_tolerance (1°/s). reached hodnotí skutečnou polohu i rychlost právě teď; není jednorázová událost a dosažený motor dále drží cíl.

Nové související postupy#

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
JoltControl.get_phase_motorJoltControl.get_phase_motor()Wheel/Crank; phase [0, 1) default 0, direction shortest/positive/negative default shortest. Dynamika jako position_motor. Setter Boolean; getter config + mode/active/reached/tolerance/resolved_angle, undefined při nevhodném objektu.
JoltControl.set_phase_motorJoltControl.set_phase_motor(options)Wheel/Crank; phase [0, 1) default 0, direction shortest/positive/negative default shortest. Dynamika jako position_motor. Setter Boolean; getter config + mode/active/reached/tolerance/resolved_angle, undefined při nevhodném objektu.