public void HandleBulletIntersections(EnemyHandler eh, Player p, ContentManager contentManager) { #region PLAYERS_BULETS foreach (Bullet b in p.bullets) { bulletRectangle = new Rectangle((int)b.X, (int)b.Y, 3, 1); foreach (Enemy e in eh.EnemiesIter()) { if (e.IsAlive) { enemyRectangle = new Rectangle((int)e.X, (int)e.Y - 100, e.W, e.H); if (enemyRectangle.Intersects(bulletRectangle)) { e.Hitpoints -= 1; e.explosionHandler.CreateExplosion("small", new Vector2(b.X - 75, b.Y), contentManager); p.bullets.Remove(b); bulletRemoved = true; } } } if (bulletRemoved) { bulletRemoved = false; break; } } #endregion #region ENEMIES_BULLETS playerRectangle = new Rectangle((int)p.X - p.W / 2, (int)p.Y - p.H / 2, p.W, p.H); foreach (Enemy e in eh.EnemiesIter()) { foreach (Bullet b in e.bullets) { bulletRectangle = new Rectangle((int)b.X, (int)b.Y, 3, 1); if (bulletRectangle.Intersects(playerRectangle)) { p.Hitpoints -= 1; if (p.IsAlive) e.explosionHandler.CreateExplosion("small", new Vector2(b.X - random.Next(5, 20), b.Y), contentManager); e.bullets.Remove(b); break; } } } #endregion }
public void HandlePlanesInterestion(EnemyHandler eh, Player p) { playerRectangle = new Rectangle((int)p.X, (int)p.Y, p.W, p.H); foreach (Enemy e in eh.EnemiesIter()) if (e.IsAlive) { enemyRectangle = new Rectangle((int)e.X, (int)e.Y - 100, e.W, e.H); if (playerRectangle.Intersects(enemyRectangle)) { e.Hitpoints = 0; p.Hitpoints -= 10; } } }