Conexión entre MicroBlocks y Snap!
Introducción a Snap!
- En esta actividad aprenderemos cómo crear un videojuego con Snap!, un entorno de programación visual por bloques similar a Scratch y a MicroBlocks, que nos permite desarrollar proyectos más complejos. 
- El videojuego podrá controlarse mediante cualquier placa compatible con MicroBlocks, ya sea conectándola por cable o, si la placa lo permite, de forma inalámbrica por Bluetooth BLE. 

Movimiento de la nave
- Tenemos disponible una plantilla con los objetos necesarios para el proyecto en este enlace. Hay que usar la versión 10 de desarrollo o superior. 
- Empezaremos programando el movimiento de la nave. Como solo queremos moverla de izquierda a derecha, basta con modificar el componente x de su posición mediante el bloque - asigna el valor _ a xde la categoría Movimiento.

- Una posibilidad es usar el ratón para moverla. Para ello, necesitamos el bloque x del ratónque se encuentra en la categoría Sensores.

Reto 1: para empezar el juego, haz que la nave siga siempre el movimiento del ratón

Solución al reto 1

Disparar el láser (I)
- Para disparar el láser crearemos copias o clones del objeto Laser. Para ello, debemos buscar el bloque - crea clon de _que está en Control.
- En lugar de la opción "mí mismo" (Starship), debemos seleccionar la opción "Laser". 

- La acción de disparar se activará con un clic del ratón, por lo que necesitaremos el bloque correspondiente en Sensores y utilizar una condicional para ejecutar la acción.

Disparar el láser (II)
- Para mostrar las copias del láser, primero hay que seleccionar el objeto Laser y luego buscar el bloque - cuando comience como clonen la categoría Control.
- Una vez creada la copia, haremos que se posicione donde está la nave y apunte en su misma dirección. 

- Finalmente, haremos que aparezca y se vaya moviendo hasta tocar el borde, momento en el cual se eliminará.

Reto 2: haz que la nave dispare cuando se haga clic con el ratón

Solución al reto 2

Movimiento de los asteroides (I)
- Con los asteroides haremos algo similar al làser, crearemos copias que irán cayendo de arriba hacia abajo. 
- Para hacerlo, ejecutaremos el bloque - crea un clon de _cada 2 segundos, tantas veces como asteroides queramos.

- Una vez creada la copia, haremos que vaya a un punto sobre el borde superior con una posición x aleatoria. Para ello necesitaremos el bloque número al azar entre _ y _que está en Operadores.

Movimiento de los asteroides (II)
- Una vez situada la copia del asteroide, haremos que vaya bajando restando 1 (o mejor dicho, sumando -1) a su y, usando el bloque - cambiar y en _.
- Además de caer, podemos hacer que también vaya girando usando el bloque - girar _ grados.
- Para que la copia se elimine si toca el láser o si su posición y es menor que -200, usaremos una condicional con el bloque operador - _ o _.

Reto 3: haz que los asteroides se oculten al inicio, se muestren y vayan bajando hasta tocar la nave

Solución al reto 3

Fin del juego (I)
- La idea es que el juego termine cuando la nave colisione con un asteroide. 
- Aunque esta comprobación puede hacerse en cualquiera de los dos objetos, en este ejemplo lo haremos en la nave. 

- Lo único que hay que hacer es que, si toca un asteroide, se envíe un mensaje de "Game Over" y además la nave se oculte (como si hubiera sido destruida). 
- ¡No olvides hacer que se muestre al inicio, ya que si no quedará oculta!. 
Fin del juego (II)
- Una vez enviado el mensaje, haremos que cuando lo reciba el objeto Game Over, se muestre y detenga el programa mediante el bloque - detener todos.
- Además, habrá que ocultarlo al inicio, ya que si no quedará visible todo el tiempo mientras jugamos. 

Conexión entre MicroBlocks y Snap!
- La conexión entre MicroBlocks y Snap! puede establecerse mediante cable o Bluetooth BLE (siempre que la placa y el ordenador o dispositivo donde se ejecuta Snap! lo permitan). 
- La comunicación se realiza mediante bloques de envío de mensajes. Se pueden intercambiar mensajes y datos en ambos sentidos, tanto de MicroBlocks a Snap! como de Snap! a MicroBlocks. 
- Solo funciona en navegadores Chrome o compatibles. Para la conexión Bluetooth BLE en Linux se debe activar la opción Web Bluetooth del navegador. 

- En el caso de MicroBlocks, no es necesario usar ninguna biblioteca adicional. En cambio, en Snap! es necesario importar la biblioteca MicroBlocks.

- Para establecer la comunicación hay que usar el bloque - connect to MicroBlocks via _de la categoría MicroBlocks.
- En la versión USB, Snap! y MicroBlocks están conectados por cable USB. Es necesario preparar previamente el programa en MicroBlocks y cerrarlo. Al activar el bloque, aparece una ventana para escoger dónde está conectada nuestra placa. 


- Con la opción BLE, aparece una ventana para seleccionar el nombre Bluetooth de la placa.


- Para poder controlar la nave remotamente con la placa ED1, será necesario preparar y ejecutar previamente el programa con MicroBlocks.
De MicroBlocks a Snap!
- Para enviar un mensaje a Snap! se utiliza el bloque envía _de la categoría Control. Por ejemplo, usaremos el botón OK para disparar.
 
- Es conveniente dejar una pequeña espera para evitar saturar el envío de mensajes. 
- Para enviar un valor, por ejemplo la inclinación X de la placa para controlar la nave, basta con separar el nombre y el valor con una coma. 
 
- En el programa de Snap! solo habrá que responder a estos mensajes con el bloque cuando me llegue _, también en la categoría Control.

- Hemos ajustado el valor recibido, ya que la coordenada X de la nave va de -200 a 200 y la inclinación toma valores entre -100 y 100.
De Snap! a MicroBlocks
- Para comunicar Snap! con MicroBlocks hay que usar el bloque enviar mensaje _. En el ejemplo se puede usar al destruir un asteroide, para hacer un sonido o una vibración, y para indicar el final del juego en la pantalla de la placa.

 
Reto final: ¡completa el juego!

Solución al reto final
 
| ⬅️ Actividad anterior | Actividad siguiente ➡️ | 
|---|
					© by Citilab Edutec 2019-2025.
					This work is licensed under a CC-BY-SA 4.0 license.
				
