Pomocné skripty · Fyzické ovládací prvky

Páka (Lever)

Lever je páka s pivotem na spodním konci tyče a omezeným otáčením kolem lokální +X.

GML
jolt_control_lever(options=undefined)

Před vytvořením zavolejte jolt_start(). Každá factory přijímá jeden volitelný options struct a vrací JoltControl, při chybě undefined. Společné options: parent, position/rotation nebo local_position/local_rotation, mass, resistance a output. Rozměry jsou celé délky v metrech, hmotnost v kg; úhly tohoto API jsou ve stupních. Detaily společného nastavení najdete v kapitole Uchycení, velikost a vykreslování.

PoložkaVýznam / výchozí hodnota
size{x:0.1, y:0.1, z:1}
mass1 kg
min_angle / max_angle−45° / 45°
initial_angle0°
auto_return / targetfalse / 0.5
drive{max_torque:10, frequency:4, damping:1}
detents[]

Tyč v referenční poloze vede z pivotu podél +Z. Min a max musejí obsahovat nulu a mít rozpětí větší než 0 a menší než 180°. Hodnota je (úhel − min_angle) / (max_angle − min_angle), oříznutá na 0..1. U nesymetrických limitů proto nulový fyzický úhel nemusí znamenat hodnotu 0.5.

target je kanonická hodnota 0..1. Samotný set_target() pouze uloží cíl; pohon zapíná auto_return: true nebo set_auto_return(true). Těleso k cíli dojede fyzikálně, není při vytvoření přesunuto do targetu.

Příklad#

GML
lever = jolt_control_lever({
    min_angle: -40, max_angle: 40,
    detents: [0, 0.5, 1],
    output: {min: -1, max: 1}
});
var command = lever.get_output_value();

Integrace s aktuálním projektem#

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
jolt_control_leverjolt_control_lever(options=undefined)Vyžaduje managed svět, options volitelné, vrací vlastněný JoltControl nebo undefined. Bez parent světové position/rotation; s parent místní local_position/local_rotation, nekombinuj. Páka: size .1/.1/1 m, mass1 kg, min/max -45/45°, initial0, auto_return false, target.5; osa +X, páka +Z.