OnCollision toiminto käynnistyy, kun omistaja KeyboardController komponentin (pelaaja kokonaisuus meidän tapauksessamme) on ollut osallisena yhteentörmäyksessä.
yksityinen toiminto OnCollision (tapahtuma: CollisionEvent): void {Me varmistamme, että törmäys on kanssa "Platform".
Tulevaisuudessa pelaaja voi myös törmätä vihollisia, luoteja, lisävoimia jne, mutta mikään näistä törmäykset ovat merkityksellisiä KeyboardController.
jos (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.collisionType, "Platform") ) {Sitten tarkistaa, jos törmäys normaali, joita voit ajatella kuin linja muistuttaa kohtisuorassa alustan, on Ay komponentti vähintään 0,7. Tämä osoittaa, että alusta ei ole liian jyrkkä seistä.
jos (event.normal.y> 0,7)Jos se ei ole liian jyrkkä, me increment onGround muuttuja osoittaa, että pelaaja on seisoo alustalla.
onGround ++; }}OnCollisionEnd toiminto tekee päinvastoin, decrementing onGround muuttuja, kun soitin ei enää törmääminen alustalla.
oma toiminto OnCollisionEnd (tapahtuma: CollisionEvent): mitätön {jos (ObjectTypeManager.instance. doesTypeOverlap (event.collidee.collisionType, "Platform")) {jos (event.normal.y> 0,7) onGround--; }}onGround muuttuja nyt näyttää, onko pelaaja seisoo kentällä. Vuonna onTick toiminto tarkistamme onko hyppy painetaan ja onGround on suurempi kuin nolla. Jos näin pelaajat pystysuora liikenopeus muutettu, jotta se hypätä.
julkisen Ohitustoiminto onTick (tickRate: Numero): void {//... jos (InputManager.isKeyDown (InputKey.UP) && onGround> 0) {velocity.y = -JumpSpeed; } //...}