Paso 33: Pong - detección de colisiones
Permaneciendo en la vena de modificaciones similares por un momento, la detección de colisión debe ajustarse así. Ambas condiciones de puntuación lógicamente trabajar en esta iteración, así que en lugar de ajustar el estado cuando la bola alcanza el lado izquierdo de la pantalla, llamar a resetBall(). La siguiente modificación es al final del código de colisión de paleta derecha. Agregar una más en la estructura implica que debe mover la bola izquierda. El siguiente paso es comparar el borde de la derecha de la paleta izquierda y la coordenada x de la bola. El paso final es nuevo comparar las esquinas superiores e inferiores, pero esta vez el lado izquierdo de la bola. La estructura entera paleta-colisión debería ser identificados:
if (state_x == BALL_RIGHT) { if (ball_x+BALL == P2_X) if ((ball_y >= p2_y && ball_y <= p2_y+PADDLE_HEIGHT) || (ball y+BALL >= p2_y && ball_y+BALL <= p2_y+PADDLE_HEIGHT)) state_x = BALL_LEFT; } else if (ball_x == P1_X+PADDLE_WIDTH) if ((ball_y >= p1_y && ball_y <= p1_y+PADDLE_HEIGHT) || (ball_y+BALL >= p1_y && ball_y+BALL <= p1_y+PADDLE_HEIGHT)) state_x = BALL_RIGHT;