jouer à la démo
télécharger le code SOURCE
Retour à la index du tutoriel
Dans le dernier tutoriel nous avons ajouté une composant pour permettre aux entités d'être détruits sur collision. Ce court-circuité l'HealthComponent utilisé par les entités ennemies, mais maintenant nous avons bouclé la boucle et ajouter une HealthComponent au joueur afin qu'il puisse être endommagé par les balles de l'ennemi. Ici, nous ajoutons le HealthComponent, et de préciser que le jeu a une première santé de 5.
Code de
Pour le joueur à être fusillé, nous devons créer un nouveau modèle de l'entité. Cela est presque une copie exacte du modèle EnemyBullet, sauf les types de type d'entité et de collision sont modifiés pour l'identifier comme une balle tirée par un ennemi et entre en collision avec le joueur
.
Code de
EnemyControllerComponent .as
Tout comme le PlayerControllerComponent, qui crée une nouvelle entité PlayerBullet lorsque la barre d'espace a été pressé, le EnemyControllerComponent créera au hasard une nouvelle entité EnemyBullet.
La variable timeToNextShot, utilisé pour le contrôle la quantité de temps entre chaque tir possible d'une balle, est décompté à 0.
fonction publique
override onTick (tickrate: Number): void {//... timeToNextShot - = tickrate; timeToNextShot = timeToNextShotUne fois timeToNextShot atteint 0 l'ennemi aura une chance de tirer une balle. Le timeToNextShot est remis à commencer le compte à nouveau vers le bas
if (timeToNextShot == 0) {timeToNextShot = timeBetweenShots;.
Nous voulons que ces tirs pour être aléatoire, donc nous utilisons la variable chanceOfShot avec la fonction aléatoire pour déterminer si un coup de feu devrait être prise. La déclaration suivante si a un 1 dans chanceOfShot chance d'être vrai.
if (Math.round (Math.random () * chanceOfShot) == 0) {Si l'instruction if est vrai une nouvelle instance du modèle EnemyBullet est créé, positionnée et la vitesse réglée
var balle:. IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); si (balle! = null) {var spatiale: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) que Box2DSpatialComponent; spatial.position = new Point (position.x, Position.Y); spatial.linearVelocity = new Point (0, bulletSpeed); }}}}
Nous devons faire un petit changement à l'PlayerControllerComponent pour arrêter les balles de l'e
Faire un clone de Space Invaders avec PushButton - principal Menu
- Commandes associées Fichiers et dossiers Avec: Batch File Programming
- Gestion des données (SGBDR)
- Maîtriser Html5
- Netbeans IDE for Java Programming
- Mysql Sql Programming
- Membres statiques et le mot clé this en C ++ Classes
- Perl référence à un Scalar
- 17 façons d'obtenir Vista, pour exécuter Faster
- Learn To Programme Online
- Basic Printemps Transactions