Connexió entre MicroBlocks i Snap!
Introducció a Snap!
- En aquesta activitat aprendrem com podem crear un videojoc amb Snap!, un entorn de programació visual per blocs similar a Scratch i a MicroBlocks, que ens permet desenvolupar projectes més complexos. 
- El videojoc es podrà controlar mitjançant qualsevol placa compatible amb MicroBlocks, ja sigui connectant-la per cable o, si la placa ho permet, sense fils per Bluetooth BLE. 

Moviment de la nau
- Tenim disponible una plantilla amb els objectes necessaris pel projecte en aquest enllaç. Cal fer servir la versió 10 de desenvolupament o superior. 
- Començarem programant el moviment de la nau. Com només volem moure-la d’esquerra a dreta, només cal modificar el component x de la seva posició mitjançant el bloc - assigna el valor _ a xde la categoria Moviment.

- Una possibilitat és fer servir el ratolí per moure-la. Per fer-ho, necessitem el bloc ratolí xque es troba a la categoria Sensors.

Repte 1: fes que al començar el joc, la nau segueixi sempre el moviment del ratolí

Solució al repte 1

Disparar el làser (I)
- Per disparar el làser crearem còpies o clons de l’objecte Laser. Per fer això hem de buscar el bloc - crea un clon de _que tenim a Control.
- En comptes de l'opció "mi mateix" (Starship) hem de seleccionar l’opció "Laser". 
 
 
- L’acció de disparar es pot activar fent un clic amb el ratolí, de manera que haurem de buscar el bloc corresponent a Sensors i fer servir un condicional per executar l’acció.

Disparar el làser (II)
- Per mostrar les còpies del làser, primer cal seleccionar l'objecte Laser i a continuació cercar el bloc - quan una còpia meva comencia la categoria Control.
- Un cop creada la còpia, farem que es posicioni on està la nau i que apunti en la mateixa direcció que aquesta. 

- Finalment, farem que aparegui i que es vagi movent fins tocar la vora, moment en què farem que s’esborri.

Repte 2: fes que la nau dispari quant es clica el ratolí

Solució al repte 2

Moviment dels asteroids (I)
- Amb els asteroids farem el mateix, crearem còpies que aniran caient de dalt a baix. 
- Per fer això, executarem el bloc - crea un clon de _cada 2 segons, tantes vegades com asteroides volguem.

- Un cop creada la còpia, farem que vagi a un punt sobre la vora superior amb una x aleatòria. Per a això necessitarem el bloc nombre a l’atzar entre _ i _que tenim a Operadors.

Moviment dels asteroids (II)
- Un cop situada la còpia de l’asteroid, farem que vagi baixant restant-li 1 (o més aviat, sumant -1) a la seva y fent servir el - bloc suma _ a y.
- A més de caure, podem fer que també vagi girant mitjançant el bloc - gira _ graus.
- Per fer que la còpia s’esborri en cas de tocar el Laser o bé quan la seva - posició ysigui més baixa de -200, cal fer servir un condicional amb el bloc d’operador- _ o_.

Repte 3: fes que els asteroides s’amaguin a l’inici, es mostrin i vagin baixant fins a tocar la nau

Solució al repte 3

Fi del joc (I)
- La idea és que el joc s’acabi un cop la nau col·lisioni amb un asteroide. 
- Tot i que aquesta comprovació es pot fer tant en un objecte com l’altre, en aquest exemple ho farem a la nau. 

- L’únic que caldrà fer és que, en cas de tocar l’asteroide, enviar un missatge de "Game Over” i que a més amagui la nau (com si l’hagués destruït). 
- No oblidem fer que es mostri a l’inici, ja que si no quedarà amagada! 
Fi del joc (II)
- Un cop enviat el missatge, farem que quan el rebi l’objecte Game Over es mostri i aturi el programa mitjançant el bloc - atura tots.
- A més caldrà amagar-lo a l’inici, ja que si no quedarà visible tota l’estona mentre juguem! 

Connexió entre MicroBlocks i Snap!
- La connexió entre MicroBlocks i Snap! es pot establir mitjançant cable o Bluetooth BLE (sempre que la placa i l'ordinador o dispositiu on s'executa Snap! ho permetin). 
- La comunicació es realitza a través de blocs d'enviament de missatges. Es poden intercanviar missatges i dades en ambdós sentits, tant de MicroBlocks a Snap! com de Snap! a MicroBlocks. 
- Només funciona en navegadors Chrome o compatibles. Per la connexió Bluetooth BLE amb Linux s'ha d'activar l'opció Web Bluetooth del navegador. 

- En el cas de MicroBlocks, no cal utilitzar cap biblioteca addicional. En canvi, a Snap! és necessari importar la biblioteca MicroBlocks.

- Per establir la comunicació cal fer servir el bloc - connect to MicroBlocks via _de la categoria MicroBlocks.
- A la versió USB, Snap!i MicroBlocks estan connectats per cable USB. Cal preparar prèviament el programa a MicroBlocks i tancar-lo. En activar el bloc, apareix una finestra per escollir on està connectada la nostra placa. 


- Amb l'opció BLE, apareix una finestra per escollir el nom Bluetooth de la placa.


- Per poder controlar la nau remotament amb la placa ED1, caldrà preparar i executar prèviament el programa amb MicroBlocks.
De MicroBlocks a Snap!
- Per enviar un missatge a Snap! utilitzant el bloc envia _de la categoria Control. Per exemple, farem servir el botó OK per disparar.
 
- És convenient deixar una petita espera per evitar saturar l'enviament de missatges. 
- Per enviar un valor, per exemple la inclinació X de la placa per controlar la nau, només cal separar el nom i el valor amb una coma. 
 
- Al programa d'Snap! només haurem de respondre a aquests missatges amb el bloc Quan rebi _, també a la categoria Control.

- Hem ajustat el valor rebut, ja que la coordenada X de la nau va de -200 a 200 i la inclinació pren valors entre -100 i 100.
De Snap! a MicroBlocks
- Per comunicar Snap! amb MicroBlocks cal utilitzar el bloc Envia _. Al nostre exemple ho podem fer servir quan destruïm un asteroide, fent un so o una vibració i per indicar el final de joc a la pantalla de la placa.

 
Repte final: completa el joc!

Solució al repte final
 
| ⬅️ Activitat anterior | Activitat següent ➡️ | 
|---|
					© by Citilab Edutec 2019-2025.
					This work is licensed under a CC-BY-SA 4.0 license.
				
