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 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 } } }