Connexió entre MicroBlocks i Snap!

Connexió entre MicroBlocks i Snap!

by Citilab Edutec

Boards
Boards:

Citilab ED1

Component/s
Components:

None
Aquesta activitat forma part del Curs del Citilab. Fes-li una ullada!

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.

Joc creat amb Snap!

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.

Bloc assigna el valor _ a x

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

Bloc ratolí x

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

Challenge 1

Solució al repte 1

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

Crea un clon de làser

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

Crear clons del làser

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.

Anar a l'objecte Starship

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

Pujar a fins tocar a la vora

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

Challenge 2

Solució al repte 2

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

Crear clons d'asteroid cada 2 segons

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

Posicionar l'asteroid a l'atzar

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

Moviment de l'asteroid

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

Challenge 3

Solució al repte 3

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

Fi de joc, envian't missatge i amagant

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

Fi de joc!

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.

Activar Web Bluetooth

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

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.

Connectar a MicroBlocks USB

Escollir USB

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

Connectar a MicroBlocks BLE

Escollir USB

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

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.

Enviar l'inclinació X

  • Al programa d'Snap! només haurem de respondre a aquests missatges amb el bloc Quan rebi _, també a la categoria Control.

Resposta d'Snap!

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

Missatge a MicroBlocks

Resposta de Microblocks

Repte final: completa el joc!

Final challenge

Solució al repte final

Solució repte final

Aquesta activitat forma part del Curs del Citilab. Fes-li una ullada!

⬅️ Activitat anterior Activitat següent ➡️

CC-BY-SA

© by Citilab Edutec 2019-2022.
This work is licensed under a CC-BY-SA 4.0 license.