private void WhichPaddleEdgeCollidedWithBall(ref PaddleEdge collidedWithBall, Point firstPlayer, Point secondPlayer) { for (int i = 0; i < 5; i++) { Point first = new Point(firstPlayer.X, firstPlayer.Y + i); Point second = new Point(secondPlayer.X + i, secondPlayer.Y); if (FoundHittedPart(first, second)) { GetCollidedPaddleEdge(ref collidedWithBall, i); break; } } }
private void GetCollidedPaddleEdge(ref PaddleEdge collidedWithBall, int i) { if ((i == 0) || (i == 1)) { collidedWithBall = PaddleEdge.UpperEdge; } else if (i == 2) { collidedWithBall = PaddleEdge.MiddleEdge; } else { collidedWithBall = PaddleEdge.BottomEdge; } }
private void HandlePaddleCollision(Point firstPlayer, Point secondPlayer) { PaddleEdge collidedWithBall = PaddleEdge.None; WhichPaddleEdgeCollidedWithBall(ref collidedWithBall, firstPlayer, secondPlayer); switch (collidedWithBall) { case PaddleEdge.UpperEdge: _velocity.Y = -1; break; case PaddleEdge.MiddleEdge: _velocity.Y = 0; break; case PaddleEdge.BottomEdge: _velocity.Y = 1; break; } _velocity.X *= -1; }