internal static void EnemyCollisions() { Enemy deadEnemy = null; foreach (Enemy en in Resources.levelOneEnemies) { if (Math.Abs(en.enemy.Left - Mario.mario.Left) <= 18 * x) { foreach (Control c in form.Controls) { if (c is PictureBox && c.Tag == "block" && Math.Abs((c as PictureBox).Left - Mario.mario.Left) <= 20 * x) { if (en.enemy.Bounds.IntersectsWith(c.Bounds)) { if (BottomCollision(en.enemy, c as PictureBox)) { en.enemy.Top = c.Top - x; en.force = 0; } if (RightCollision(en.enemy, c as PictureBox)) { en.right = false; en.enemy.Left = c.Left - x; en.left = true; } if (LeftCollision(en.enemy, c as PictureBox)) { en.left = false; en.enemy.Left = c.Right; en.right = true; } } } } if (Mario.mario.Bounds.IntersectsWith(en.enemy.Bounds)) { if (BottomCollision(Mario.mario, en.enemy)) { Mario.jump = true; Mario.force = 8; en.Die(); deadEnemy = en; } else { if (!Mario.invincible) { if (Mario.upgrade == 0) { Mario.Lose(); } else { Mario.GotHit(); } } } } } } if (deadEnemy != null) { Resources.levelOneEnemies.Remove(deadEnemy); } }