Character
Přikrčení
Přepíná mezi kapslí ve stoje a při přikrčení s automatickým testem volného prostoru.
crouch(true) požádá o kratší kapsli. crouch(false) se v dalším fixed kroku pokusí obnovit stojící kapsli a odmítne narovnání, pokud potřebný prostor blokuje rigidní geometrie.
Změna postoje#
player.crouch(keyboard_check(vk_control));
jolt_update();
if (player.just_crouched()) {
// Animace přikrčení.
}
if (player.stand_was_just_blocked()) {
// Zůstat přikrčený pod nízkým stropem.
}Metody stavu#
| Metoda | Význam |
|---|---|
| is_crouched() | Aktuální nativní postoj. |
| just_crouched() | Během update proběhl přechod do přikrčení. |
| just_stood() | Během update proběhl přechod do stoje. |
| was_stand_blocked() | Poslední pokus o narovnání neprošel clearance testem. |
| stand_was_just_blocked() | Narovnání začalo být blokované během tohoto update. |
Rozměry#
var radius = player.get_radius();
var standing = player.get_standing_height();
var crouched = player.get_crouch_height();
var current = player.get_current_height();Oba tvary sdílejí radius a zůstávají ukotvené na stejné pozici chodidel. Výšky jsou celkové včetně zaoblených konců.
Životnost eventů#
Příznaky přechodu a nového zablokování se resetují jednou pro každý jolt_update(). Pro trvalý stav používejte is_crouched() nebo was_stand_blocked().
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 |
|---|---|---|
| JoltCharacter.crouch | JoltCharacter.crouch(enabled) | Boolean úspěchu odeslání požadavku (vstup vyhodnocen jako true/false). Skutečná změna postoje proběhne v solver kroku a může být blokovaná geometrií. |
| JoltCharacter.get_crouch_height | JoltCharacter.get_crouch_height() | Uložený aktuální rozměr v m; výška je celková, nikoliv výška válce. Getter sám neověřuje platnost. |
| JoltCharacter.get_current_height | JoltCharacter.get_current_height() | Aktuální celková výška v m podle is_crouched. Při chybě dotazu na dřep může vrátit standing_height; nejdřív ověř platnost. |
| JoltCharacter.get_standing_height | JoltCharacter.get_standing_height() | Uložený aktuální rozměr v m; výška je celková, nikoliv výška válce. Getter sám neověřuje platnost. |
| JoltCharacter.is_crouched | JoltCharacter.is_crouched() | Boolean posledního nativního stavu; false i při chybě. was_stand_blocked není jednosnímková událost stand_was_just_blocked. |
| JoltCharacter.just_crouched | JoltCharacter.just_crouched() | Boolean události managed snímku; čti po jolt_update. Následující začátek managed snímku příznak vyčistí. Není to trvalý stav (např. just_landed není is_grounded). |
| JoltCharacter.set_height | JoltCharacter.set_height(metres) | Konečné rozměry kapsle v m, radius>0, total height>2*radius+minimální válcová část. Boolean; změna je okamžitá, při překážce/attachmentu selže bez změny rozměrů. Výška dřepu sleduje původní poměr, s minimem daným poloměrem. |
| JoltCharacter.stand_was_just_blocked | JoltCharacter.stand_was_just_blocked() | Boolean události managed snímku; čti po jolt_update. Následující začátek managed snímku příznak vyčistí. Není to trvalý stav (např. just_landed není is_grounded). |
| JoltCharacter.was_stand_blocked | JoltCharacter.was_stand_blocked() | Boolean posledního nativního stavu; false i při chybě. was_stand_blocked není jednosnímková událost stand_was_just_blocked. |