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 (Box2DSpatiHacer un clon de Space Invaders con PushButton - Enemigo Bullets
- Perl referencia a una Anónimo Subroutine
- Diversión Sistemas Multimedia Powerpoint Presentation
- Es la Web Convertirse en A & amp; lsquo; privacidad Free-Zone & amp; rsquo;?
- Cómo códigos de barras y smartphones Rearchitect Information
- Manipulación de datos en Mysql
- Lógica booleana Para Activeperl
- Programación Android: Estructura del proyecto Android en Eclipse
- Prestación de servicios Wifi Para Un Event
- Predefinida de Windows Cursors
- Hacer un clon de Space Invaders con PushButton - Explosions