‹›
Vehicles

Převodovka a rychlosti

Před build() nastavuje automatický nebo manuální režim, časování, shift thresholds, clutch strength a převodové poměry.

Výchozí je automat. Manuální převodovka podporuje runtime set_gear(); jeho volání v automatickém režimu selže.

Volby převodovky#

PolePravidlo / význam
automaticVýchozí true; false zvolí manuální režim.
modeJOLT_VEHICLE_TRANSMISSION_AUTOMATIC nebo MANUAL; při zadání má přednost před automatic.
switch_timeNezáporná doba změny převodu.
clutch_release_timeNezáporná doba uvolnění spojky.
switch_latencyNezáporná prodleva mezi automatickými změnami.
shift_up_rpm / shift_down_rpmKladné prahy automatického řazení.
clutch_strengthKladná síla spojky.
forward_gearsNejvýše 16 kladných forward ratios.
reverse_gearsNejvýše 16 kladných velikostí; nativní ratio bude záporné.
GML
var car = jolt_vehicle(chassis, {
    transmission: {
        mode: JOLT_VEHICLE_TRANSMISSION_MANUAL,
        forward_gears: [3.2, 2.1, 1.4, 1.0, 0.82],
        reverse_gears: [3.0],
        clutch_strength: 10
    }
});

Manuální řazení#

GML
car.set_gear(1, 1);   // první převod vpřed, plně sepnutá spojka
car.set_gear(0, 0);   // neutrál
car.set_gear(-1, 1);  // zpátečka
ArgumentRozsah
gear-16..16; záporný reverse, nula neutral, kladný forward.
clutch0..1; default 1.

Konfigurační objekt a settery#

GML
var transmission = jolt_vehicle_transmission();
transmission.set_automatic(true);
transmission.set_forward_gears([3.0, 2.0, 1.2]);
transmission.set_reverse_gears([3.0]);
var settings = jolt_vehicle_settings();
settings.set_transmission(transmission);
var car = jolt_vehicle(chassis, settings);

Konfigurační factories vracejí GML objekt nastavení; samy nevytvářejí fyziku. Jejich settery vracejí self, tedy tento objekt, a nejsou potvrzením platnosti hodnoty. Pole se spotřebují a ověří při jolt_vehicle, add_wheel nebo add_differential. Vynechané pole zachová default odpovídajícího options zápisu uvedený výše. Změna nastavení po jeho použití nemění existující vozidlo, kolo ani diferenciál. Nastavení nepotřebuje destroy.

Vozidlo při chybě vytvoření vrací undefined. add_differential vrací Boolean; add_wheel vrací číselný index začínající nulou, nebo Boolean false při chybě. Index 0 je úspěch: nepoužívej pouze if (!wheel_index). Konfiguraci kol a diferenciálů dokonči před build().

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_vehicle_transmissionjolt_vehicle_transmission()Vytvoří prázdný settings objekt. Nevyžaduje svět, nevytváří fyziku; settery vrací self. Vynechané vlastnosti přenechá defaultům při jolt_vehicle.
JoltVehicle.set_gearJoltVehicle.set_gear(gear,clutch=1)Index převodu (0 neutrál, záporný zpátečka), clutch default 1; Boolean, dostupnost převodu ověří native. Použij pro ruční řazení.
JoltVehicleTransmissionSettings.set_automaticJoltVehicleTransmissionSettings.set_automatic(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Automatic Boolean nebo JOLT_VEHICLE_TRANSMISSION_AUTOMATIC/MANUAL. Obě metody synchronizují mode/automatic.
JoltVehicleTransmissionSettings.set_clutch_release_timeJoltVehicleTransmissionSettings.set_clutch_release_time(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečný čas >= 0 s.
JoltVehicleTransmissionSettings.set_clutch_strengthJoltVehicleTransmissionSettings.set_clutch_strength(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečná síla spojky > 0; parametr přenosu momentu, ne rychlost vozidla.
JoltVehicleTransmissionSettings.set_forward_gearsJoltVehicleTransmissionSettings.set_forward_gears(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Pole 1–16 kladných konečných převodů. Zpátečka se také zadává kladně; znaménko doplní native. Pole nahrazuje celý seznam.
JoltVehicleTransmissionSettings.set_modeJoltVehicleTransmissionSettings.set_mode(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Automatic Boolean nebo JOLT_VEHICLE_TRANSMISSION_AUTOMATIC/MANUAL. Obě metody synchronizují mode/automatic.
JoltVehicleTransmissionSettings.set_reverse_gearsJoltVehicleTransmissionSettings.set_reverse_gears(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Pole 1–16 kladných konečných převodů. Zpátečka se také zadává kladně; znaménko doplní native. Pole nahrazuje celý seznam.
JoltVehicleTransmissionSettings.set_shift_down_rpmJoltVehicleTransmissionSettings.set_shift_down_rpm(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečný práh > 0 RPM.
JoltVehicleTransmissionSettings.set_shift_up_rpmJoltVehicleTransmissionSettings.set_shift_up_rpm(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečný práh > 0 RPM.
JoltVehicleTransmissionSettings.set_switch_latencyJoltVehicleTransmissionSettings.set_switch_latency(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečný čas >= 0 s.
JoltVehicleTransmissionSettings.set_switch_timeJoltVehicleTransmissionSettings.set_switch_time(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Konečný čas >= 0 s.