Paso 29: AI pala Demo - detección de colisiones
La parte final de esta demostración es modificar y añadir al actual código de detección de colisión. La modificación necesitada es bastante trivial. Ahora que hay una paleta a la derecha de la pantalla, una de las dos condiciones de puntuación puede ser aplicada. Por lo tanto, el subcase en el código de movimiento de la bola cuando la bola mueve derecho y tangente al lado derecho de la pantalla tiene que cambiar. En vez de rebote, la bola necesita reajustarse y ya existe una función para hacer eso! Simplemente llame al resetBall() en lugar de cambiar el estado.La incorporación en el código de detección de colisión es bastante simple. El primer bit para comprobar es el estado de la bola. Si la bola está moviendo a la derecha, entonces existe la posibilidad de una colisión. Si la bola es posiblemente tangente a la paleta, simplemente comparar las ubicaciones de ambos superior e inferior derecha esquina de la bola con el lado izquierdo de la paleta. Si cualquier esquina es tangente a la paleta, luego se produce una colisión. Por lo tanto lo único que hacer es cambiar el estado. El algoritmo de detección de la colisión debe ser algo como:
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;