Connexión entre MicroBlocks y Snap!

Connexión entre MicroBlocks y Snap!

per Citilab Edutec

Boards
Plaques:

Citilab ED1

Component/s
Components:

Cap
Esta actividad forma parte del Curso del Citilab. ¡Échale un vistazo!

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.

Juego creado con Snap!

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.

Bloque asigna el valor _ a x

  • 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.

Bloque ratón x

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

Reto 1

Solución al reto 1

Solución 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".

Crear un clon de láser

  • 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.

Crear clones del láser

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.

Ir al objeto Starship

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

Subir hasta tocar el borde

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

Reto 2

Solución al reto 2

Solución 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.

Crear clones de asteroide cada 2 segundos

  • 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.

Posicionar el asteroide al azar

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 _.

Movimiento del asteroide

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

Reto 3

Solución al reto 3

Solución 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.

Fin de juego, enviando mensaje y ocultando

  • 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.

¡Fin del juego!

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.

Activar Web Bluetooth

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

Librería 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.

Conectar a MicroBlocks USB

Escoger USB

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

Conectar a MicroBlocks BLE

Escoger BLE

  • 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.

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.

Enviar la inclinación X

  • 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.

Respuesta de Snap!

  • 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.

Mensaje a MicroBlocks

Respuesta de MicroBlocks

Reto final: ¡completa el juego!

Reto final

Solución al reto final

Solución reto final

Esta actividad forma parte del Curso del Citilab. ¡Échale un vistazo!

⬅️ Actividad anterior Actividad siguiente ➡️

CC-BY-SA

© per Citilab Edutec 2019-2025.
Aquesta obra té una llicència CC-BY-SA 4.0.