Stap 6: Botsingdetectie
Het laatste wat dat we moeten doen is om te detecteren of de bal de peddel of niet raakt.
We weten dat de speler miste de bal bij de onderkant van de bal boven de top van de peddel is of de bovenkant van de peddel dan de onderkant van de peddel is.
We weten dat de bal nooit geraakt de peddels, zal tenzij de bal op de meest rechtse of meest linkse X, dus wij moet alleen controleren peddels in die twee scenario's.
bool MissedPaddle(u8g_uint_t py)<br>{ u8g_uint_t ballTop = ballY; u8g_uint_t ballBottom = ballY + ballSize - 1; u8g_uint_t paddleTop = py; u8g_uint_t paddleBottom = py + paddleHeight - 1; return ballBottom < paddleTop || ballTop > paddleBottom; }
Toen iemand een bal miste, we verplaatsen de bal naar de andere kant, spelen een gemiste bal Toon, en de andere speler score verhogen. Wanneer de score bereikt winnende score, is het game over :-)
void Player0Missed()<br>{ // When left player missed, move the ball just to the left of rightmost of court ballX = courtWidth - ballSize - 1; ballY = paddle1Y + paddleHalfHeight; // ball will be served at location of player 1's paddle tone(tonePin, missToneFrequency, missToneDuration); delay(1000); score1++; animationSpeed = animationSpeed0; if (score1 == winningScore) gameOver = true; } void Player1Missed()<br>{ // When right player missed, move the ball just to the right of the leftmost of court ballX = 1; ballY = paddle0Y + paddleHalfHeight; // ball will be served at location of player 0's paddle tone(tonePin, missToneFrequency, missToneDuration); delay(1000); score0++; animationSpeed = animationSpeed0; if (score0 == winningScore) gameOver = true; }