示例#1
0
 public void CleanTemporaryGameLists()//gameobject lists are cleaned up
 {
     GameDisplay.Children.Clear();
     //lists are updated
     EnemyProjectiles  = EnemyProjectiles.Except(TemporaryEnemyProjectiles).ToList();
     PlayerProjectiles = PlayerProjectiles.Except(TemporaryPlayerProjectiles).ToList();
     Ufos     = Ufos.Except(TemporaryUfos).ToList();
     Walls    = Walls.Except(TemporaryWalls).ToList();
     Invaders = Invaders.Except(TemporaryInvaders).ToList();
     //temporary lists are cleared
     TemporaryWalls.Clear();
     TemporaryPlayerProjectiles.Clear();
     TemporaryInvaders.Clear();
     TemporaryEnemyProjectiles.Clear();
     TemporaryUfos.Clear();
 }
示例#2
0
 private void CheckEnemyProjectileCollision()//discovers collisions between enemy projectiles and other gameobjects
 {
     foreach (EnemyProjectile EnemyProjectile in EnemyProjectiles)
     {
         foreach (Wall wall in Walls)
         {
             if (wall.IsHit(EnemyProjectile.X, EnemyProjectile.Y + 10))
             {
                 TemporaryEnemyProjectiles.Add(EnemyProjectile); //removes enemy projectile
                 TemporaryWalls.Add(wall);                       //removes wall
             }
         }
         if (Player.IsHit(EnemyProjectile.X, EnemyProjectile.Y))
         {
             Player.HealthPoints--;                          //removes one player life
             TemporaryEnemyProjectiles.Add(EnemyProjectile); //removes enemy projectile
         }
         if (EnemyProjectile.Y > GameDisplay.ActualHeight)
         {
             TemporaryEnemyProjectiles.Add(EnemyProjectile);//removes enemy projectile
         }
     }
 }
示例#3
0
 private void CheckplayerProjectileCollisions()//discovers collisions between player projectiles and other gameobjects
 {
     foreach (PlayerProjectile PlayerProjectile in PlayerProjectiles)
     {
         foreach (Wall wall in Walls)
         {
             if (wall.IsHit(PlayerProjectile.X, PlayerProjectile.Y))
             {
                 TemporaryWalls.Add(wall);                         //removes wall
                 TemporaryPlayerProjectiles.Add(PlayerProjectile); //removes player projectile
             }
         }
         foreach (Invader invader in Invaders)
         {
             if (invader.IsHit(PlayerProjectile.X, PlayerProjectile.Y))
             {
                 TemporaryInvaders.Add(invader);                   //removes invader
                 TemporaryPlayerProjectiles.Add(PlayerProjectile); //removes player projectile
                 score = score + 5 + 15 * difficultyIndex;         //score for a destroyed invader
             }
         }
         foreach (Ufo ufo in Ufos)
         {
             if (ufo.IsHit(PlayerProjectile.X, PlayerProjectile.Y))
             {
                 score += 50;
                 TemporaryUfos.Add(ufo);                           //removes UFO
                 TemporaryPlayerProjectiles.Add(PlayerProjectile); //removes player projectile
             }
         }
         if (PlayerProjectile.Y < 0)
         {
             TemporaryPlayerProjectiles.Add(PlayerProjectile);//removes player projectile
         }
     }
 }