internal static void MarioCollisions() { foreach (Control c in form.Controls) { if (c is PictureBox && c.Tag == "block" && Math.Abs((c as PictureBox).Left - Mario.mario.Left) <= 18 * x) { if (Mario.mario.Bounds.IntersectsWith(c.Bounds)) { if (BottomCollision(Mario.mario, c as PictureBox)) { if (Mario.upgrade == 0 || Mario.crouch) { Mario.mario.Top = c.Top - x; } else { Mario.mario.Top = c.Top - 2 * x; } Mario.jump = false; Mario.force = 0; } if (TopCollision(Mario.mario, c as PictureBox)) { Mario.mario.Top = c.Bottom; Mario.force = 0; if (c.Name.Split(' ')[0] == "questionMark") { QuestionMarkIsHit(c); } if (c.Name == "brick") { BrickIsHit(c); } } if (RightCollision(Mario.mario, c as PictureBox)) { Mario.right = false; Mario.mario.Left = c.Left - x; } if (LeftCollision(Mario.mario, c as PictureBox)) { Mario.left = false; Mario.mario.Left = c.Right; } if (c.Name == "flag1" || c.Name == "flag2") { Mario.Win(); } } } } }