*   >> Lectura Educación Artículos >> science >> programación

PushButton Tutorial Series - Tracking & amp; amp; Jumping

a de eventos.

KeyboardController.as

 función de anulación protegida onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);} protegida función onRemove anulación (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_STOPPED_EVENT, OnCollisionEnd);.

}

La función OnCollision se desencadena cuando el dueño del componente KeyboardController (el jugador entidad en nuestro caso) se ha involucrado en una colisión

 función OnCollision privada (event: CollisionEvent): void {

Nos aseguramos de que la colisión es con una "Plataforma". En el futuro el jugador también podría chocar con los enemigos, balas, power-ups, etc, pero ninguna de estas colisiones son relevantes para la KeyboardController.

 si (ObjectTypeManager.instance.doesTypeOverlap (event.collidee.

collisionType, "Plataforma") ) {

A continuación, comprobamos para ver si el choque normal, lo que se puede considerar como una línea señalando perpendicular a la plataforma, tiene ay componente de al menos 0,7. Esto indica que la plataforma no es demasiado empinada para estar de pie.

 si (event.normal.y> 0,7) 

Si no es demasiado empinada, incrementamos la variable onground para indicar que el jugador es de pie sobre una plataforma

 onground ++.

; }}

La función OnCollisionEnd hace lo contrario, decrementar la variable onground cuando el jugador ya no está colisionando con una plataforma

 función privada OnCollisionEnd (event: CollisionEvent):. void {if (ObjectTypeManager.instance. doesTypeOverlap (event.collidee.collisionType, "Plataforma")) {if (event.normal.y> 0,7) onGround--; }} 

La variable onground ahora indica si el jugador está de pie en el suelo. En la función onTick comprobamos para ver si se pulsa la tecla de salto y onground es mayor que cero.

Si por lo que los jugadores de velocidad vertical modificada para hacerla saltar

 función de anulación pública onTick (tickrate: Number):. Void {//... si (InputManager.isKeyDown (InputKey.UP) && onground> 0) {velocity.y = -JumpSpeed; } //...}
Page   <<  [1] [2] 
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.