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 x
de la categoría Movimiento.
- Una posibilidad es usar el ratón para moverla. Para ello, necesitamos el bloque
x del ratón
que 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 clon
en 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 ➡️ |
---|
© per Citilab Edutec 2019-2025.
Aquesta obra té una llicència CC-BY-SA 4.0.