예제 #1
0
 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;
         }
     }
 }
예제 #2
0
 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;
     }
 }
예제 #3
0
        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;
        }