Character
Svahy a schody
Nastavuje schůdné úhly, omezení strmých svahů a automatické překonávání schodů.
Pohyb se odřízne od povrchů, které jsou příliš strmé. ExtendedUpdate se zároveň pokouší vystoupit na schod a udržet postavu u schůdné podlahy.
Nastavení#
player.set_max_slope(45);
player.set_step_height(0.35);
var angle = player.get_max_slope();
var step = player.get_step_height();| Nastavení | Platný rozsah | Účinek |
|---|---|---|
| max_slope | Více než 0 a méně než 90 stupňů | Největší úhel považovaný za schůdný. |
| step_height | 0 až standing height | Vzdálenost automatického kroku nahoru a dodatečného kroku dolů. |
Nativní chování na schodech#
- Krok nahoru používá aktuální up vektor násobený step_height.
- Přichycení k podlaze jde dolů nejméně o 0.5 jednotky, nebo o step_height, je-li větší.
- Dodatečný krok ze schodu dolů používá přesně step_height.
- Požadovaný pohyb proti příliš strmému svahu se před aktualizací zruší.
Detekce strmého svahu#
if (player.is_on_steep_ground()) {
var normal = player.get_ground_normal();
// Animace sklouznutí nebo omezení vstupu.
}Změny za běhu#
Obě nastavení se projeví v dalším fixed kroku postavy. Slaďte max_slope s geometrií levelu, aby se schody na hranách nestřídaly mezi schůdným a strmým kontaktem.
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.get_max_slope | JoltCharacter.get_max_slope() | Maximální schůdný sklon: aktuální číslo v °. Selhání: undefined; neplatný objekt není nulové měření. |
| JoltCharacter.get_step_height | JoltCharacter.get_step_height() | Výška schodu: aktuální číslo v m. Selhání: undefined; neplatný objekt není nulové měření. |
| JoltCharacter.set_max_slope | JoltCharacter.set_max_slope(degrees) | Maximální schůdný sklon: konečné číslo (0, 90) °; výchozí 45. Vrací true při přijetí, false při neplatném vstupu nebo neplatném objektu. Mění živý objekt. |
| JoltCharacter.set_step_height | JoltCharacter.set_step_height(value) | Výška schodu: konečné číslo 0..standing_height m; výchozí .35. Vrací true při přijetí, false při neplatném vstupu nebo neplatném objektu. Mění živý objekt. |