Paso 13: chaseForward y chaseReverse
Las funciones chaseForward y chaseReverse son esencialmente los mismos excepto en chaseForward, la bola se dirige hacia el jugador 2 y para chaseReverse, la bola se dirige hacia el jugador 1. A continuación, se muestran ejemplos de chaseForward.En primer lugar, el programa comprueba si se ha pulsado el botón para devolver la pelota al jugador 1. Si se pulsa antes de los bucles de código 30 veces, truco se convierte en 'true'. Esto hace que el botón puede pulsarse sólo una vez por cada lado.
Cada vez que la función de bucle, el siguiente en la franja de es iluminarse para 'esperar' milisegundos. 'espera' es el valor ajustado por el potenciómetro.
Si se presiona el botón y la 'bola' es dos o menos LEDs desde el extremo de la cadena y todavía no se ha pulsado el botón, el balón se enviará hacia el jugador 1. Si se presiona el botón antes de 'i' es 28 o si no se presiona que jugador 2 perderá un punto.for(i; i < 30; i++) {
if(digitalRead(player2) == LOW)
{
Cheat = 'Y';
}
strip.setPixelColor (i, c); Activado nuevo pixel
Strip.Show(); Actualizar Estados de LED
strip.setPixelColor (i, 0); Borrar pixel, pero no actualizar!
Delay(Wait);
Si (i > 27 & & cheat! = 'Y')
{
int BbuttonState = digitalRead(player2);
if(BbuttonState == Low)
{
vuelta = 'B';
bandera = 'R';
retorno;
}
}
}
Si el jugador 2 pierde el punto, un punto se agrega a player1Points y la puntuación actualizada aparecerá en los marcadores. También están iluminados los LED de jugador 1. player1Points ++;
digitalWrite (latch1, bajo);
shiftOut (data1, clock1, MSBFIRST, ~ digitOne[player1Points]);
shiftOut (data1, clock1, MSBFIRST, ~ digitTwo[player2Points]);
digitalWrite (latch1, HIGH);
if(player1Points < score)
LCD.Print ("jugador 1 cuentas!");
Strip.Show();
Encender LEDs player1
digitalWrite (latch2, LOW);
shiftOut (data2, clock2, MSBFIRST, 0);
digitalWrite (latch2, HIGH);
función chaseForward función de chaseReverse aquí aquí