*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een Space Invaders kloon met PushButton - Het doden van de Player

SPEEL DE DEMO

Download de broncode

Terug naar de tutorial INDEX

Dankzij de physics engine als de speler en een vijand botsen de vijand zal de speler duwen uit de weg. In space invaders het spel moet eindigen wanneer de vijand en de speler botsen, dus we moeten een onderdeel dat zowel de speler als de vijand om te ontploffen bij contact zal veroorzaken toe te voegen.

Dit is iets anders dan het systeem van gezondheidszorg gebruikt in de botsing tussen een vijand en de spelers kogels.

In dat scenario zal de kogel wat gezondheid af te trekken van de vijand, en moet de vijanden gezondheid te bereiken 0 de HealthComponent zal dan vernietig de vijandelijke entiteit en verzenden van een evenement te laten andere componenten weten dat de entiteit is overleden. Op dit punt de vijand heeft 1 eenheid van de heide, en de kogels aftrekken 1 eenheid van de gezondheid, zodat het eindresultaat is dat de vijanden zal sterven met een schot.

Maar in de toekomst kunnen we willen vijanden die twee of meer foto's te nemen, en dank aan de HealthComponent dat kan worden gedaan door het wijzigen van een XML-element.

daarentegen een botsing tussen een speler en een vijand moet altijd leiden in beide vernietigd. Om dit een nieuwe component genaamd DeathOnContactComponent wordt gemaakt uit te voeren.

DeathOnContactComponent.

as

 openbare klasse DeathOnContactComponent breidt EntityComponent {

De deathCollisionTypes collectie bevat de namen van de entiteiten die deze entiteit zal leiden worden vernietigd als ze botsen met deze

 openbare var deathCollisionTypes. Array; publieke functie DeathOnContactComponent () {super (); } Beschermde override functie onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beschermde override functie onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.

COLLISION_EVENT, OnCollision); }

In de onCollision functie vinden we de Box2DSpatialComponent van de botsende entiteit (vergeet niet dat je niet kunt aannemen dat event.collidee of event.collider zal consequent verwijzen naar de andere entiteit), en dan komen we erachter of de andere entiteit botsing naam is een wedstrijd voor een van deze in de deathCollisionTypes verzameling

 privéaangelegenheid OnCollision (event: CollisionEvent): void {var mySpatial. Box2DSpatialComponent = owner.

lookupComponentByType (Box2DSpatialComponent) als B

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.