Étape 29 : Paddle AI Demo - détection de Collision
La dernière partie de cette démo est pour modifier et ajouter à l’actuel code de détection de collision. La modification nécessaire est assez triviale. Maintenant qu’il y ait une pagaie sur le côté droit de l’écran, l’une des deux conditions notation possibles peut être appliquée. Par conséquent, les précadres dans le code de mouvement de boule lorsque la balle se déplace à droite et tangente à la droite de l’écran doit changer. Au lieu de rebondir, la balle doit être réinitialisé et une fonction existe déjà pour le faire ! Il suffit d’appeler resetBall() au lieu de modifier l’État.L’ajout du code de détection de collision est assez simple. Le premier bit à vérifier est l’état de la balle. Si la balle se déplace à droite, puis il est possible d’une collision. Si la balle est peut-être tangente à la pagaie, il suffit de comparer les emplacements de la la haute et inférieure droite coin de la balle avec le côté gauche de la palette. Si des coins sont tangent à la pagaie, une collision se produit. Donc la seule chose à faire est de changer l’État. L’algorithme de détection de collision doit ressembler à :
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;