Tlačítko (Button)
Button je krátké lineární tlačítko se samostatným stavem stisku a hysterezí.
jolt_control_button(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žka | Význam / výchozí hodnota |
|---|---|
| cap_size | {x:0.12, y:0.12, z:0.03} |
| mass / travel | 0.15 kg / 0.02 m |
| initial_value | 0 (0..1) |
| auto_return / target | false / 0 |
| pressed_threshold / released_threshold | 0.8 / 0.6 |
| drive | {max_force:12, frequency:12, damping:1} |
| detents | [] |
Origin je střed uvolněného víčka. +Z míří ven, stisk probíhá podél −Z; get_value() vrací 0 v klidu a 1 na konci dráhy. is_pressed() sepne při dosažení pressed_threshold a vypne až při poklesu na released_threshold. Platí 0 ≤ released_threshold < pressed_threshold ≤ 1. Tato metoda existuje pouze u Button.
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#
button = jolt_control_button({auto_return: true, target: 0});
// Po simulaci; was_pressed inicializujte jednou na false.
var pressed = button.is_pressed();
if (pressed && !was_pressed) show_debug_message("Activate");
was_pressed = pressed;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ík | Signatura | Kontrakt operace |
|---|---|---|
| jolt_control_button | jolt_control_button(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. Tlačítko: cap_size .12/.12/.03 m, mass .15 kg, travel .02 m, initial0, thresholds .8/.6, auto_return false, target0. Pohyb -Z. |
| JoltControl.is_pressed | JoltControl.is_pressed() | Pouze Button má tuto metodu; Boolean s hysterezí pressed/released, false také při chybě. |