SPEEL DE DEMO
Download de broncode
Terug naar de tutorial INDEX
Tot nu toe hebben we met behulp van de XML entiteit en niveau definities als een manier of het definiëren en het creëren van entiteiten, dwz elke entiteit in de XML-bestanden wordt gemaakt wanneer het niveau wordt geladen. Dit heeft geen zin te maken voor de kogels hoewel, als ze zullen worden gemaakt in reactie op de invoer van het toetsenbord. Drukknop maakt voor deze door het geven ons de mogelijkheid om een entiteit is gedefinieerd in de XML-bestanden bij naam runtime instantiëren.
Eerst moeten we de kogel entiteit definiëren. Dit zal gebeuren als een matrijs. De code voor de kogel template bevat dezelfde ruimtelijke, rendering en animatie componenten als de vijand we gedefinieerd in de eerste tutorial.
Code
Een nieuwe component genaamd DestroyIfOffScreenComponent is gemaakt. Het doel is om een entiteit uit het spel te verwijderen wanneer het scherm is verhuisd uit. Dit is een handige manier om schoon te maken entiteiten die niet langer nuttig zijn.
Code
Naast een nieuwe component genaamd DamageOnContactConponent laat een entiteit, zoals een kogel, om schade toebrengen aan een andere entiteit is botst. De werkelijke logica beheren de gezondheid van een entiteit niet worden toegevoegd in deze handleiding, zodat de component DamageOnContactConponent eenvoudig de entiteit verwijdert waaraan het is bevestigd wanneer een botsing optreedt.
Code
Als je goed kijkt de collisionType en collidesWithTypes eigenschappen van de component Box2DSpatialComponent werden niet in de Bullet template.
Dit is omdat we uiteindelijk willen twee soorten kogels - die ontslagen door de speler en die ontslagen door de vijand. Om dit te huisvesten definiëren we een nieuwe sjabloon genaamd PlayerBullet, op basis van de Bullet template. Hier definiëren we de PlayerBullet als een entiteit die botst met vijanden.
Code
The Enemy sjabloon wordt gewijzigd, zodat het zal botsen met de entiteiten op basis van de PlayerBullet sjabloon.
Code
De laatste wijziging is om de PlayerControllerComponent, die een nieuwe eigenschap genaamd bulletEntityName krijgt, die de naam van de sjabloon van waaruit de spelers kogels creëren definieert.
Code
< p> De code voor de component DamageOnContactConponent is vrij eenvoudig op dit punt, omdat we niet de logica om daadwerkelijk toebrengen schade hebben geïmplementeerd. Voor nu is het luistert voor een botsing en verwijd