. E-8 Juego de ping pong con Scratch (S4A) y Arduino para los mandos

Con este ejemplo vamos a desarrollar el juego de Ping Pong con Scratch y Arduino. Usaremos dos potenciómetros para mover las dos raquetas como podemos ver en el vídeo.

Componenetes:

Placa Arduino
Placa prototipos
2 Potenciómetros

El código de Scratch es un poco más complejo que en otros ejemplos. En este caso hay 5 variables, 4 objetos con scripts (2 raquetas, pelota y mensaje ganador) y el fondo que también tiene un script.

 


Objetos Raqueta

Son dos objetos arruino que utilizan la misma conexión a la placa, es decir los dos potenciómetros estarán conectados a la misma placa. La imagen de estos objetos es una barra vertical blanca que ocupa aproximadamente una quinta parte de la altura del campo de juego. El código es sencillo ya que sólo controla el giro del potencimetro para mover la raqueta.


Al inicio del script se coloca la raqueta en la posición inicial, la coordenada x no cambiará y la coordenada y cambia según se mueve el potenciometro.

El potenciómetro conectado a la entrada analógica (la 0 para una raqueta y la 5 par la otra) genera valores entre 0 y 1023 y este valor debe ser transformado al desplazamiento máximo de la raqueta, en este caso para calcular al relación se divide por 3.86 y se resta 145.

Fondo

El fondo es negro y tiene dos líneas horizontales blancas, una en la parte superior y otra en la inferior para delimitar el campo. En el centro tiene otra línea blanca vertical para dividir los dos campos

 

El script del fondo iniciativa a cero el valor de las variables que marcan la puntuación de los jugadores y espera hasta que alguna de las variables (jugador A o jugador B ) sea mayor que 3 para informar al mensaje ganador (a través de enviar a todos ... y que el objeto Mensaje ganador termine el juego.
 

 

 

 

Objeto Mensaje ganador

Este objeto está formado por el texto ¡¡¡Ganador!!! en color rojo que permanece oculto hasta que algún jugador supera determinada cantidad de puntos (en nuestro caso 3 puntos). Cuando recibe el mensaje ganadorA o ganador B aparece en el campo del ganador y el juego termina.
 

 

 

 

 

 

Objeto pelota
 

Este objeto e el que tiene un script más complejo.  Comienza inicializando las variables de posición (x e y), la de dirección cuyos valores serán 1 para ir hacia la derecha y -1 para ir hacia la izquierda y las de velocidad (velocidad x e y que se inicializan a 3).
 

 

 

En el bucle se comprueba si ha superado el límite superior o inferior y en caso verdadero se cambia la componente y de la velocidad (rebota arriba o abajo)
 

 

Las dos siguientes condiciones comprueban si la pelota está tocando alguno de los objetos Arduino1 o Arduino2 (las raquetas), si es así  cambia la componente x de la velocidad (rebota en la raqueta)
 

 

Las dos siguientes condiciones comprueban si la pelota está detrás de la raqueta, en este caso el jugador contrario obtiene un punto y coloca a la pelota en la parte central del campo y en dirección hacia el jugador que ha perdido el punto.
 

 

 

 

 

En las tres últimas instrucciones se cambian los valores de las coordenadas de la posición de la pelota (cambiando los valores de las variables x e y) y se mueve el objeto a la nueva posición.