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ç.
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 x
de la categoria Moviment.
- Una possibilitat és fer servir el ratolí per moure-la. Per fer-ho, necessitem el bloc
ratolí x
que 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 comenci
a 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ó y
sigui 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 llibreria addicional. En canvi, a Snap! és necessari importar la llibreria 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
broadcast _ to MicroBlocks
. A l'exemple Asteroids ho podem fer servir quan destruint 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-2022.
This work is licensed under a CC-BY-SA 4.0 license.