‹›
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í#

GML
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_slopeVíce než 0 a méně než 90 stupňůNejvětší úhel považovaný za schůdný.
step_height0 až standing heightVzdá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#

GML
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íkSignaturaKontrakt operace
JoltCharacter.get_max_slopeJoltCharacter.get_max_slope()Maximální schůdný sklon: aktuální číslo v °. Selhání: undefined; neplatný objekt není nulové měření.
JoltCharacter.get_step_heightJoltCharacter.get_step_height()Výška schodu: aktuální číslo v m. Selhání: undefined; neplatný objekt není nulové měření.
JoltCharacter.set_max_slopeJoltCharacter.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_heightJoltCharacter.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.