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

Hacer un clon de Space Invaders con PushButton - Matar al Player

JUGAR LA DEMO

DESCARGAR EL CÓDIGO FUENTE

VOLVER A EL INDICE TUTORIAL

Gracias al motor de física cuando el jugador y enemigo chocan el enemigo va a empujar al jugador fuera del camino. En invasores del espacio del juego debe terminar cuando el enemigo y el jugador chocan, así que tenemos que añadir un componente que hará que tanto el jugador como el enemigo a explotar al contacto.

Esto es un poco diferente al sistema de salud utilizado en la colisión entre un enemigo y las balas de los jugadores.

En ese escenario la bala le reste algo de salud del enemigo, y si la salud de los enemigos llegar a 0 el HealthComponent entonces destruir la entidad enemiga y despachar un evento para dejar que otros componentes saben que la entidad ha muerto. En este punto el enemigo tiene 1 unidad de la salud, y las balas restar 1 unidad de salud, por lo que el resultado final es que los enemigos morirán con un disparo. Pero en el futuro es posible que desee agregar enemigos que tienen dos o más disparos, y gracias a la HealthComponent que se puede hacer mediante la modificación de un elemento XML.


Por el contrario una colisión entre un jugador y un enemigo siempre debe resultar en tanto que se destruyeron. Para implementar este un nuevo componente llamado se crea DeathOnContactComponent.

DeathOnContactComponent.as

 DeathOnContactComponent clase pública se extiende EntityComponent {

La colección deathCollisionTypes contiene los nombres de las entidades que harán que esta entidad ser destruidos cuando chocan con ella

 deathCollisionTypes var públicas:.

Matriz; función DeathOnContactComponent público () {super (); } Función protegida anulación onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Protegida anulación función onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); }

En la función onCollision encontramos la Box2DSpatialComponent de la entidad colisión (recuerde que usted no puede asumir que event.collidee o event.

collider se refieren constantemente a la otra entidad), y luego nos damos cuenta si de la otra entidad nombre de la colisión es un partido para uno de los de la colección deathCollisionTypes

 OnCollision función privada (event: CollisionEvent): void {var mySpatial:. Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpati

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.