/// <summary> /// Processes possible the-ball-to-a-brick collisions, and does appropriate velocity changes if they occur. /// </summary> private void ProcessPossibleBrickCollisions() { for (int i = 0; i < bricks.Length; i++) { if (bricks[i] != null) { Position currentCollisionPosition = CollisionDetector.BrickToCircleIntersection(ball, bricks[i]); if (currentCollisionPosition != Position.None) { PositionRelationBallVelocityManager .ChangeVelocityAccordingToCollisionPosition(ball, currentCollisionPosition); bricks[i].Dispose(); bricks[i] = null; } } } }
/// <summary> /// Processes possible the-ball-to-a-wall collision, and if it occurs, changes velocity of the ball. /// </summary> private void ProcessPossibleWallCollisions() { PositionRelationBallVelocityManager.BallWallsContact(ball, graphics); }