Connecting MicroBlocks to Snap!

Connecting MicroBlocks to Snap!

von Citilab Edutec


Citilab ED1

Weitere Komponenten:

This activity is part of the Citilab Course. Check it out!

Connecting MicroBlocks to Snap!

Introduction to Snap!

  • In this session we will see how we can create a video game with Snap!, a programming environment similar to Scratch that allows us to develop more complex projects.
  • The idea will be to control it through the ED1 board, to which we will load a program called Signada, in order to be able to interact with the video game created with Snap!
  • Then to Snap! we will load a library with the same name that will allow us to connect to the board and interact with it.

Game created with Snap!

Movement of the ship

  • We have a template available with the objects already created at this link.
  • We will start by programming the movement of the ship. Since we only want to move it from left to right, we just need to modify the x component of its position using the *set x to _ block in the Movement category.

Block change x by _

  • To test it for now we can use the mouse to move it, we need the mouse x block that is in the Sensors category.

Mouse x block

Challenge 1: Make the ship always follow the mouse x when starting the game


Solution to challenge 1

Shoot Laser (I)

  • To fire the laser we will create copies or "clones" of the Laser object. To do this we need to look for the create a clone of _ block that we have in Control.

  • Instead of "myself" we must select the Laser object.

    Block create a clone of _ Create a clone of Laser
  • We can do the shooting action when we click the mouse, so we will have to look for the block corresponding to Sensors and use a conditional to execute the action.

Laser Clone

Shoot Laser (II)

  • To create copies of the Laser we will first select it and look for the block when I start as a clone. You must select the laser object to apply this code.

Bloc when I start as a clone

-Once the copy is created, we will make it go to the ship and also point in the same direction as it.

Go to Starship Object

  • Finally, we will make it move until it touches the edge, where we will also delete it.

Rise until touching the edge

Challenge 2: Make the ship always follow the mouse x when starting the game


Solution to challenge 2

Asteroid movement (I)

  • With the asteroids we will do the same, we will create copies that fall from top to bottom.
  • To do this, we will run the create clone block every 2 seconds (for example) from the start.

Create asteroid clones every 2 seconds

  • Once the copy is created, we'll make it go to a point on the top edge with a random x. For this we will need the pick random _ to _ block that we have in Operators.

Random Asteroid Position

Asteroid movement (II)

  • Once the copy of the asteroid is located, we will make it move down by subtracting 1 (or rather, adding -1) to its y using the change y by _.
  • In addition to falling, we can also make it rotate using the rotate _ degrees block.
  • To make the copy deleted when the Laser is touched or or when its y-position is lower than -200, you need to use a conditional with the _ or_ block. Asteroid Motion
Challenge 3: Make the Asteroid object hide at startup and only show when the copy is created


Solution to challenge 3

End of game (I)

  • The idea is that the game ends once the ship collides with an asteroid.
  • Although this check can be done on either one object or the other, in this example we will do it on the ship.

Endgame, send a message and hide

  • The only thing that needs to be done is that, in case of touching the Asteroid, send a "game over" message and also hide the ship (as if it had been destroyed).
  • Don't forget to make it show at the start, otherwise it will stay hidden!

End of game (II)

  • When the message is received we will make the Game Over object appear and stop the program using the stop all block.
  • In addition, it will be necessary to hide the Game Over object at the beginning, since otherwise it will remain visible the whole time while we play!

Game Over

Signada MicroBlocks

  • To be able to control the ship remotely with the ED1 board, it will be necessary to load a program on it using MicroBlocks.
  • This program is located in the Network folder and is called Signada (network remote control).

Signada MicroBlocks 1

Signada MicroBlocks 2

Signada MicroBlocks 3

  • Once opened, it is necessary to enter the credentials of the WiFi network in the indicated block.

Configure WIFI

Signada (Snap!)

  • On Snap! you will need to load the Signada (network remote control) library.

Signada Snap! 1

Signada Snap! 2

  • Once loaded, we will see that a few blocks are added in some categories, for example in Movement, Sound, Pen, Sensors and Variables.

Signada Snap! 3

  • In our case we are mainly interested in the blocks of the last two categories.

Signada Snap! 4

Connection with board

To connect the Snap! with the ED1 it will be necessary to use the block connect to _ using the IP shown on the screen.

Connection with board 1

Connection with board 2

If the connection is successful, the screen will change to show the text "Connected.".

Connection with board 3

We can also check the connection status in Snap! through the connected block.

Connection with board 4

  • Once connected we can make the appropriate changes to use the board to control the ship.
  • For example, instead of the x-position of the mouse, we will use the tilt in the x-axis of the plate to move the ship from one side to the other.
  • And to shoot the laser we can use either the OK button or the X.
Final Challenge: Complete the game!
This activity is part of the Citilab Course.

⬅️ Previous activity


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