Skip to main content

3.3 Joystick

El Joystick está conectado a los pines A0 y A1 y su valor varía desde 100 hasta 1024.

El pin A0 controla el eje X El pin A1 controla el eje Y

3.3.1 MONTAJE 7 Telesketch

RETO Vamos a realizar el mismo ejemplo que este vídeo de Jorge Lobo pero en vez de realizado en Snap4Arduino lo vamos a hacer en mBlock.

Solución


El programa :

image-1648727355333.png

Simplemente vamos a comentar las condicionales principales:

Si A0 es menor que 300 es que estás inclinando el Joystick hacia la izquierda, luego el Sprite tiene que modificar su variable x hacia la derecha, es decir decrementando su valor

image-1648727378013.png

Si A0 es mayor que 700 es seguro que estás inclinando el Joystick hacia la derecha luego hay que incrementar el valor de la ordenada X

Para los valores del eje Y es igual, cambiando A0 por A1

VA MUY LENTO El resultado lo puedes ver en este vídeo:

Por curiosidad puedes ver el mismo programa en Snap4Arduino en este vídeo:

Puedes ver que es mucho más rápido que mBlock.

3.3.2 MONTAJE 8 Comebichos

No podemos dejar el Joystick sin hacer un videojuego !!

El siguiente RETO es: Mover un Sprite “Bat” con el Joystick para atrapar un Beetle

  • Bat se tiene que mover con el joystick por toda la pantalla.
  • Beetle se mueve horizontalmente desde el borde derecho hasta el borde izquierdo, y cuando llega al izquierdo, vuelve a aparecer en el derecho (y aleatoriamente desde cualquier altura)

Solución


El programa te lo puedes descargar aquí

El bicho lo haremos mover bastante rápido y al azar en el eje Y para que lo tenga difícil Bat:
image-1648727480224.png
Y bat tiene que moverse con el joystick

image-1648727492949.png

Los valores de m y n lo hemos calculado con la HOJA DE CÁLCULO que comentamos anteriormente, los valores límites que hemos puesto son:

Para el eje X e Y :0-715
image-1648727521000.png

Para el eje Y:

image-1648727528934.png

Además hemos añadido la puntuación y el cambio de disfraz para que parezca que aletea:



El resultado es:

Lo sé …. soy bastante malo !!