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(); }
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 } } }