Joystick (Joystick)
Joystick poskytuje dva směry náklonu s kruhovým omezením a uzamčeným twistem.
jolt_control_joystick(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 |
|---|---|
| size | {radius:0.06, length:0.6} |
| mass / max_angle | 1 kg / 25° |
| auto_return / target | true / {x:0, y:0} |
| drive | {max_torque:10, frequency:5, damping:1} |
| detents / output | [] / {x:{min:-1,max:1,inverted:false}, y:{min:-1,max:1,inverted:false}} |
Tyč vede od pivotu podél +Z, pravý náklon je +X a přední +Y. max_angle musí ležet mezi 0 a 90° bez krajních bodů. get_values() vrací {x,y}, get_value(0) osu X a get_value(1) osu Y. Obě složky jsou −1..1 a délka vektoru nepřekročí 1; diagonála {1,1} proto není platný target ani detent.
Příklad#
stick = jolt_control_joystick({
max_angle: 20,
output: {x: {min: -1, max: 1}, y: {min: -1, max: 1, inverted: true}}
});
var input = stick.get_output_values();
var steering = input.x;
var forward = input.y;set_target(x,y) používá fyzický disk bez ohledu na output. Automatický návrat je zde ve výchozím stavu zapnutý a cílí do středu. Pro joystick s pevnými polohami nastavte auto_return:false a detents:[{x:0,y:0}, …]; zóny detentů se měří jako vzdálenost v tomto disku.
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_joystick | jolt_control_joystick(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. Joystick: radius.06, length.6 m, mass1kg, max_angle25° v (0, 90), auto_return true, target{0, 0}, drive10N·m/5Hz/1; žádné pressed thresholds. |