‹›
Vehicles

Diferenciály a pohon

Propojí engine torque s jedním nebo dvěma indexy kol a řídí final ratio, left/right split a limited slip.

Explicitní diferenciály podporují FWD, RWD a AWD. Pokud žádný nepřidáte, build() seskupí driven kola do praktických automatických diferenciálů.

Syntaxe#

Syntax
vehicle.add_differential(left_wheel, right_wheel, options=undefined)
VolbaDefaultValidace
ratio3.42Konečný a větší než 0.
split0.5Rozdělení left/right od 0 do 1.
limited_slip_ratio1.4Konečný a větší než 1.
engine_torque_ratio1.0Podíl engine torque od 0 do 1.

Rozložení pohonu#

GML
// Pohon zadních kol
car.add_differential(2, 3, { engine_torque_ratio:1 });

// Pohon všech kol
car.add_differential(0, 1, { engine_torque_ratio:0.45 });
car.add_differential(2, 3, { engine_torque_ratio:0.55 });
  • Každý index musí existovat. -1 může znamenat chybějící stranu, ale nemohou chybět obě.
  • Explicitní diferenciály přidávejte před build().
  • Při automatické tvorbě se driven kola párují v pořadí přidání a torque se rozdělí mezi vzniklé páry.
  • wheel.driven odráží driven flag; členství v explicitním diferenciálu je samostatná konfigurace.

Konfigurační objekt a settery#

GML
var differential = jolt_vehicle_differential(0, 1);
differential.set_ratio(3.42);
differential.set_split(0.5);
car.add_differential(differential);

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_differentialjolt_vehicle_differential(left, right)Vytvoří nastavení s indexy left/right kol; záporný index značí chybějící stranu, alespoň jedna musí existovat při přidání. Vrací settings, ne diferenciál v simulaci.
JoltVehicle.add_differentialJoltVehicle.add_differential(left, right = undefined, options = undefined)Před build; indexy kol + options nebo DifferentialSettings. Boolean. Poměr >0, split/engine fraction 0..1, limited slip >1; jedna strana může být záporná.
JoltVehicleDifferentialSettings.set_engine_torque_ratioJoltVehicleDifferentialSettings.set_engine_torque_ratio(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Podíl 0..1, výchozí 1.
JoltVehicleDifferentialSettings.set_limited_slip_ratioJoltVehicleDifferentialSettings.set_limited_slip_ratio(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Poměr > 1, výchozí 1.4.
JoltVehicleDifferentialSettings.set_ratioJoltVehicleDifferentialSettings.set_ratio(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Převod > 0, výchozí 3.42.
JoltVehicleDifferentialSettings.set_splitJoltVehicleDifferentialSettings.set_split(value)Konfigurace před vytvořením; vrací self, validace až při jolt_vehicle/add_wheel/add_differential. Rozdělení vlevo/vpravo 0..1, výchozí 0.5.