jolt_start
Inicializuje native Jolt runtime a vytvoří managed default physics world.
jolt_start() je vstupním bodem high-level API. Inicializuje Jolt, vytvoří jeden default world, nainstaluje collision layer Default a resetuje všechny managed registry a fixed-step timing state.
Syntax#
jolt_start([options]);| Argument | Typ | Popis |
|---|---|---|
| options | Struct | undefined | VOLITELNÉ. Výchozí undefined. Nastavení světa a časování popsané níže. |
Návratová hodnota#
Boolean. true po úspěšné inicializaci, false při selhání validace, inicializace nebo vytvoření světa. Ihned čtěte jolt_get_error().
Základní nastavení#
// Create event persistentního physics controlleru.
if (!jolt_start()) {
var error = jolt_get_error();
show_error(error.message, true);
}Options#
| Field | Default | Popis |
|---|---|---|
| gravity_x | 0.0 | World gravity podél veřejné osy X. |
| gravity_y | 0.0 | World gravity podél veřejné osy Y. |
| gravity_z | -9.81 | World gravity podél veřejné osy Z. |
| fixed_dt | 1 / 60 | Délka jednoho deterministic simulation stepu v sekundách. |
| max_frame_time | 0.25 | Maximum frame time přidané do accumulatoru jedním update. |
| max_steps | 8 | Maximum fixed steps zpracovaných jedním update; hodnota se zaokrouhlí dolů. |
Vlastní konfigurace#
jolt_start({
gravity_x: 0,
gravity_y: 0,
gravity_z: -9.81,
fixed_dt: 1 / 120,
max_frame_time: 0.2,
max_steps: 12
});Validace a návratová hodnota#
- fixed_dt a max_frame_time musí být větší než 0.
- floor(max_steps) musí být alespoň 1.
- Gravity components musí jít převést na konečné native float hodnoty.
- Funkce vrací true po úspěšné inicializaci a false při chybě validace, native inicializace nebo vytvoření worldu.
- High-level error code, message a context získáte přes jolt_get_error().
State vytvořený při startu#
- Jeden managed default world a jeho bezpečný generational handle.
- Default JoltLayer jako první user collision layer.
- Prázdné registry bodies, cloths, characters, shapes, compounds, constraints a paths.
- Prázdné collision a character-contact event listy a nulové dropped-event counters.
- Vynulovaný time accumulator a simulation-step counter.
Runtime accessors#
jolt_is_started()
jolt_default_world()
jolt_fixed_timestep()
jolt_get_simulation_steps()
jolt_managed_body_count()| Funkce | Význam |
|---|---|
| jolt_is_started() | Zda managed runtime právě vlastní world. |
| jolt_default_world() | Numeric native handle, nebo 0 při zastavení. |
| jolt_fixed_timestep() | Nastavené fixed_dt. |
| jolt_get_simulation_steps() | Celkový počet úspěšných fixed steps od posledního startu. |
| jolt_managed_body_count() | Počet právě platných managed bodies. |
Native inicializace#
Runtime registruje Jolt types, alokuje 10 MiB temporary allocator a vytvoří worker pool s počtem hardware threads minus jedna, nejméně však jedním workerem. Pokud se vytvoření worldu nezdaří, native runtime se znovu ukončí, takže nezůstane částečně inicializovaná managed session.
Low-Level / Advanced API#
jolt_init()
jolt_world_create(gravity_x, gravity_y, gravity_z)
jolt_world_destroy(world)
jolt_shutdown()Low-level API může vlastnit explicitní world handly, za celý jejich lifecycle však odpovídá váš kód. jolt_shutdown() odstraní všechny native worlds. Neničte managed default world za zády high-level runtime.
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_start | jolt_start(options = undefined) | Boolean idempotentního startu managed světa. Options gravity XYZ default 0/0/-9.81 m/s², fixed_dt1/60s, max_frame_time.25s, max_steps8 (floor). Kladné časové parametry, max_steps>=1; již spuštěný svět novými options nepřenastaví. |