예제 #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 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
         }
     }
 }