diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 86c8da53..fc4a1bf9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ All contributions are assumed to be licensed under the same licence as the sourc ## Issues -If you find a mistake, bug, or other problem, please [open an issue](https://github.com/raspberrypilearning/repo-name/issues) in this repository. +If you find a mistake, bug, or other problem, please [open an issue](https://github.com/raspberrypilearning/grow-a-dragonfly/issues) in this repository. ## Pull requests diff --git a/LICENCE.md b/LICENCE.md index c56cfa08..d1722c43 100644 --- a/LICENCE.md +++ b/LICENCE.md @@ -4,6 +4,6 @@ Unless otherwise specified, everything in this repository is covered by the foll [![Creative Commons licence](http://i.creativecommons.org/l/by-sa/4.0/88x31.png)](http://creativecommons.org/licenses/by-sa/4.0/) -***PROJECT NAME*** by the [Raspberry Pi Foundation](http://www.raspberrypi.org) is licensed under a [Creative Commons Attribution 4.0 International licence](http://creativecommons.org/licenses/by-sa/4.0/). +Grow a dragonfly by the [Raspberry Pi Foundation](http://www.raspberrypi.org) is licensed under a [Creative Commons Attribution 4.0 International licence](http://creativecommons.org/licenses/by-sa/4.0/). -Based on a work at https://github.com/raspberrypilearning/project-name. +Based on a work at https://github.com/raspberrypilearning/grow-a-dragonfly. diff --git a/README.md b/README.md index 56739221..58113889 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ -# explore-project-template +# Grow a dragonfly -![explore-project-template](banner.png) +![A dragonfly catching flies](en/images/banner.png) -Find the project online at [projects.raspberrypi.org/en/projects/explore-project-template](https://projects.raspberrypi.org/en/projects/explore-project-template) +Find the project online at [projects.raspberrypi.org/en/projects/grow-a-dragonfly](https://projects.raspberrypi.org/en/projects/grow-a-dragonfly) ## Resources -For project materials and solutions, see [en/resources](https://github.com/raspberrypilearning/explore-project-template/tree/master/en/resources) and [en/solutions](https://github.com/raspberrypilearning/explore-project-template/tree/master/en/solutions). +For solutions, see [en/solutions](https://github.com/raspberrypilearning/grow-a-dragonfly/tree/master/en/solutions). ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) ## Licence - See [LICENCE.md](LICENCE.md) \ No newline at end of file +See [LICENCE.md](LICENCE.md) \ No newline at end of file diff --git a/en/meta.yml b/en/meta.yml index 225a04b7..ff484e08 100644 --- a/en/meta.yml +++ b/en/meta.yml @@ -8,7 +8,7 @@ listed: true copyedit: false last_tested: '2021-04-27' steps: - - title: You will make + - title: What you will make - title: Set the scene - title: A fly to eat completion: @@ -27,5 +27,6 @@ steps: passing_score: 3 completion: - external - - title: Upgrade your project + - title: Challenge + challenge: true - title: What next? diff --git a/en/step_1.md b/en/step_1.md index 7fd1fb94..c3eb5c5d 100644 --- a/en/step_1.md +++ b/en/step_1.md @@ -1,19 +1,10 @@ -## You will make +## What you will make Make a nature app with a dragonfly that grows bigger as it eats insects. -You will: -+ Use `if`{:class="block3control"} blocks to make decisions based on **conditions** made with `operators`{:class="block3operators"} and `sensing`{:class="block3sensing"} blocks -+ Use `random`{:class="block3operators"} numbers to control the movement of a sprite -+ Use the `Sounds`{:class="block3sound"} editor to edit a sound - -

-We use **conditions** all the time to make decisions. We could say “if the pencil is blunt, then sharpen it”. `If`{:class="block3control"} blocks and conditions let us write code that does something different depending on whether a condition is true or false.

- --- no-print --- --- task --- -### Play ▶️
Move the mouse (or your finger) around the Stage to eat insects. How do the insects move? diff --git a/en/step_10.md b/en/step_10.md index 5c2debf9..c42eefeb 100644 --- a/en/step_10.md +++ b/en/step_10.md @@ -4,7 +4,7 @@ If you are following the [More scratch](https://projects.raspberrypi.org/en/rasp --- print-only --- -![The Stage view of completed drum star project.](images/drum-star.png) +![The Stage view of the completed Drum star project.](images/drum-star.png) --- /print-only --- diff --git a/en/step_2.md b/en/step_2.md index bb6ee7f3..fd09ec67 100644 --- a/en/step_2.md +++ b/en/step_2.md @@ -13,16 +13,11 @@ You will set the scene. Choose your backdrop and add a dragonfly that follows th Open the [Grow a dragonfly starter project](https://scratch.mit.edu/projects/535695413/editor){:target="_blank"}. Scratch will open in another browser tab. -[[[working-offline]]] - --- /task --- -

-**Dragonflies** can be found all over the world and have been around for over 300 million years!

- --- task --- -**Choose:** Click **Choose a Backdrop** and add a backdrop of your choice. We used the **Jurassic** backdrop. +Click **Choose a Backdrop** and add a backdrop of your choice. We used the **Jurassic** backdrop. ![Backdrop icon on the Scratch app interface](images/choose-backdrop-icon.png) @@ -66,7 +61,9 @@ The Dragonfly costume is not facing to the right, so the head of the **Dragonfly --- task --- -Click on the **Costumes** tab and use the **Select** (arrow) tool to select the costume. Use the **Rotate** tool at bottom of the selected costume to turn the **Dragonfly** costume to face the right. +Click on the **Costumes** tab and use the **Select** (arrow) tool to select the costume. + +Use the **Rotate** tool at bottom of the selected costume to turn the **Dragonfly** costume to face the right. ![An animated image showing how to rotate the dragonfly costume by dragging the rotation arrows so that the dragonfly faces right.](images/rotated-costume.gif) @@ -90,10 +87,14 @@ Add the **Crank** sound to the **Dragonfly** sprite. ![](images/crank-sound-editor.png) -Click the **Play** button so you can hear the sound. - --- /task --- +--- task --- + +**Test:** Click the **Play** button so you can hear the sound. + +--- /task --- + The **Crank** sound is too long and too slow for dragonfly wings. --- task --- @@ -104,15 +105,18 @@ Click **Copy to New** to make a new sound with just the selected part: ![The end of the crank sound selected in blue with the 'Copy to New' icon highlighted.](images/crank-copy-end.png) -Rename your new sound from **Crank2** to `Wings`. +--- /task --- +--- task --- + +Rename your new sound from **Crank2** to `Wings`. ![The rename sound property.](images/crank-wings-sound.png) --- /task --- --- task --- -Play the new sound. Click the **Faster** button a few times until you like the result: +**Test:** Play the new sound. Click the **Faster** button a few times until you like the result: ![A faster sound wave with the 'Faster' icon highlighted.](images/wings-faster.png) diff --git a/en/step_3.md b/en/step_3.md index 171cc99e..7b6aebe5 100644 --- a/en/step_3.md +++ b/en/step_3.md @@ -9,9 +9,6 @@ You will add an insect for the dragonfly to eat.
-

-Characters that move around on their own in games are sometimes called **mobs**, short for mobiles. Can you think of a game that has mobs?

- There's a fly in the **Frog 2** sprite that you can use. --- task --- @@ -45,7 +42,7 @@ Add a new costume to the sprite using the **Paint** option: Click on the **Paste** icon to paste the sprite into the new costume. Drag the fly to the **centre** so it lines up with the crosshair. -You can rename your costume `Insect` and delete the other costumes, as you won't need those: +Rename your costume `Insect` and delete the other costumes, as you won't need those: ![The paint editor showing a pasted new Insect costume with the Paste icon highlighted. The costume list shows the other costumes have been deleted.](images/fly-costume.png) @@ -83,8 +80,6 @@ You want the **Insect** sprite to `hide`{:class="block3looks"} `if`{:class="bloc Add an `if`{:class="block3control"} block to the **Insect** sprite's movement script: -![](images/fly-icon.png) - ```blocks3 when flag clicked forever @@ -105,8 +100,6 @@ You want the insect to `hide`{:class="block3looks"} `if`{:class="block3control"} Drag a `touching [Dragonfly v]`{:class="block3sensing"} into the `if`{:class="block3control"} block. Add a `hide`{:class="block3looks"} block inside the `if`{:class="block3control"} block. -![](images/fly-icon.png) - ```blocks3 when flag clicked forever @@ -129,9 +122,7 @@ The dragonfly won't get very big if it can only eat one fly! --- task --- -Add blocks to `go to a random position`{:class="block3motion"} on the Stage, and make your sprite `wait`{:class="block3control"} for one second then `show`{:class="block3looks"}: - -![](images/fly-icon.png) +Add blocks to make the hidden insect sprite `go to a random position`{:class="block3motion"} on the Stage, `wait`{:class="block3control"} for one second then `show`{:class="block3looks"}: ```blocks3 when flag clicked @@ -154,7 +145,7 @@ end **Test:** Test that your dragonfly can now eat lots of flies. -Make sure you have added the `show`{:class="block3looks"} block to show at the start. +Make sure you have added the `show`{:class="block3looks"} block at the start. --- /task --- diff --git a/en/step_4.md b/en/step_4.md index c1cd2a44..7f2be94f 100644 --- a/en/step_4.md +++ b/en/step_4.md @@ -9,10 +9,7 @@ You will make the dragonfly grow when it eats a fly, and stop if it reaches full -

-The biggest living dragonflies can be found in Central America and have a wingspan of 19cm (a bit bigger than your hand). The largest insect ever known was **Meganeuropsis permiana**, a dragonfly with a wingspan of about 75cm (the size of a big footstep).

- -The fly knows that it has been eaten, and now the Dragonfly needs to know so that it grows. +The Dragonfly needs to grow when it eats a fly. When you need to let another sprite know that something has happened, you can use a `broadcast`{:class="block3events"} block as you did in [Broadcasting spells](https://projects.raspberrypi.org/en/projects/broadcasting-spells){:target="_blank"}. @@ -58,8 +55,6 @@ change size by [5] Add the **Chomp** sound to the dragonfly and `start`{:class="block3sound"} it when an insect gets eaten: -![](images/dragonfly-icon.png) - ```blocks3 when I receive [food v] +start sound [Chomp v] @@ -79,9 +74,21 @@ When the dragonfly reaches its full size, the game will congratulate you and sto Add an `if`{:class="block3control"} block. -The dragonfly is full-size when the `size`{:class="block3looks"} `=`{:class="block3operators"} `100%`. First, add an `=`{:class="block3operators"} operator into the hexagon-shaped input: +```blocks3 +when I receive [food v] +start sound [Chomp v] +change size by [5] ++if < > then +end +``` -![](images/dragonfly-icon.png) +--- /task --- + +The dragonfly is full-size when the `size`{:class="block3looks"} `=`{:class="block3operators"} `100%`. + +--- task --- + +First, add an `=`{:class="block3operators"} operator into the hexagon-shaped input: ```blocks3 when I receive [food v] @@ -96,8 +103,6 @@ end Finish building the condition by adding a built-in `size`{:class="block3looks"} variable and type the value `100`: -![](images/dragonfly-icon.png) - ```blocks3 when I receive [food v] start sound [Chomp v] @@ -113,8 +118,6 @@ Add blocks so that `if`{:class="block3control"} the condition is true `then`{:cl Finally, add a `stop all`{:class="block3control"} block to stop the other dragonfly scripts: -![](images/dragonfly-icon.png) - ```blocks3 when I receive [food v] start sound [Chomp v] diff --git a/en/step_5.md b/en/step_5.md index f68dfe73..cca3d4f6 100644 --- a/en/step_5.md +++ b/en/step_5.md @@ -13,9 +13,7 @@ The dragonfly 'glitches' and changes direction really fast if the mouse-pointer Select the **Dragonfly** and find the script that starts with `when flag clicked`{:class="block3events"}. -Drag an `if`{:class="block3control"} inside the `forever`{:class="block3control"} block and the blocks inside the `forever`{:class="block3control"} will move inside the `if`{:class="block3control"}. - -Check carefully that your code looks like this: +Drag an `if`{:class="block3control"} inside the `forever`{:class="block3control"} block. The blocks inside the `forever`{:class="block3control"} will move inside the `if`{:class="block3control"}. ![](images/dragonfly-icon.png) @@ -36,10 +34,6 @@ end Then drag a `not`{:class="block3operators"} block into the `if`{:class="block3control"} and a `touching (mouse-pointer)`{:class="block3sensing"} inside that. -Check that your code looks like this: - -![](images/dragonfly-icon.png) - ```blocks3 when flag clicked set size to [25] % @@ -52,24 +46,22 @@ end end ``` -The `not`{:class="block3operators"} block turns a condition into its opposite, just like it would in a sentence. - --- /task --- --- task --- **Test:** Check that the glitch is fixed, and the Dragonfly only moves when it is `not`{:class="block3operators"} `touching (mouse-pointer)`{:class="block3sensing"}. -A different condition to try is: +--- /task --- + +--- task --- + +Try a different condition that makes the dragonfly move when it is far enough from the mouse-pointer: ```blocks3 <(distance to [mouse-pointer v]) > [50]> ``` -This makes the dragonfly move when it's far enough from the mouse-pointer. - -**Tip:** You can drag blocks anywhere in the Code area and leave them there while you try different things. - --- /task --- --- save --- diff --git a/en/step_6.md b/en/step_6.md index f6a46811..18286d53 100644 --- a/en/step_6.md +++ b/en/step_6.md @@ -17,16 +17,15 @@ Right-click on the **Insect** sprite in the Sprite list under the Stage and **du --- /task --- -It's helpful if this insect looks different to the fly. +Make this insect look different to the fly. --- task --- -Click on the **Costumes** tab. +Click on the **Costumes** tab and create a different flying insect. -**Choose:** Create a different flying insect. -+ Use the **Fill** tool to change the colour of this insect -+ **Paint** your own insect costume -+ **Add** another bug costume from Scratch ++ Use the **Fill** tool to change the colour of this insect. ++ **Paint** your own insect costume. ++ **Add** another bug costume from Scratch. --- /task --- @@ -44,15 +43,15 @@ Use the fill tool to fill in the **Dragonfly**'s mouth. We used purple: --- /task --- -You need to check that the **Insect2** sprite is touching the **Dragonfly** sprite `and`{:class="block3operators"} touching the colour of the dragonfly's mouth. +You need to check that the new sprite is touching the **Dragonfly** sprite `and`{:class="block3operators"} touching the colour of the dragonfly's mouth. --- task --- -Select the **Insect2** sprite and click on the **Code** tab. +Select your new sprite and click on the **Code** tab. Drag an `and`{:class="block3operators"} block into the `if`{:class="block3control"} block. -The ``{:class="block3sensing"} block will pop out, drag it into the left of the `and`{:class="block3operators"} block: +The ``{:class="block3sensing"} block will pop out, drag it into a space in the `and`{:class="block3operators"} block: ![](images/insect2-icon.png) @@ -75,9 +74,7 @@ end --- task --- -Drag a `touching color`{:class="block3sensing"} block into the right of the `and`{:class="block3operators"} block: - -![](images/insect2-icon.png) +Drag a `touching color`{:class="block3sensing"} block into the other space of the `and`{:class="block3operators"} block: ```blocks3 when flag clicked @@ -94,23 +91,21 @@ end end ``` -If it doesn't have the colour of the dragonfly's mouth selected, click on the colour circle and then click on the **Eyedropper** tool to select a colour. +If it doesn't have the colour of the dragonfly's mouth selected, click on the colour circle and then click on the **Eyedropper** tool at the bottom to select a colour. ![The colour circle menu with eyedropper tool.](images/colour-eyedropper.png) -Click on the dragonfly's mouth on the Stage to set the colour to match: +Click on the dragonfly's mouth on the Stage to set the colour: ![The eyedropper tool with colour select highlighter hovering over the purple mouth of the dragonfly.](images/colour-select.png) -**Tip:** If this is tricky to do, change the size of the **Dragonfly** sprite so it's really big. +**Tip:** If the small mouth is hard to select, make the **Dragonfly** sprite bigger. --- /task --- --- task --- -**Test:** Now test that the dragonfly can only eat the second insect with its mouth. - -If you like, you can change the first **Insect** so that it can only be eaten with the dragonfly's mouth. +**Test:** Check the dragonfly can only eat the second insect with its mouth. --- /task --- diff --git a/en/step_7.md b/en/step_7.md index 69ab51ed..19b99656 100644 --- a/en/step_7.md +++ b/en/step_7.md @@ -2,9 +2,10 @@
-The insects in your app move in a very predictable pattern, but in real life they are hard to catch. +The insects move in a very predictable pattern. + +Use the `pick random`{:class="block3operators"} block to make the insect move in a more natural way. -You will use the `pick random`{:class="block3operators"} block to make the insect move in a more natural way.
![Stage showing insects pointing in different directions.](images/random-movement.png){:width="300px"} @@ -15,6 +16,8 @@ You will use the `pick random`{:class="block3operators"} block to make the insec Add a script to **Insect 2** to make it point in a random direction every 1–3 seconds. +![](images/insect2-icon.png) + ```blocks3 when flag clicked forever // Keep changing direction @@ -27,27 +30,19 @@ end --- task --- -**Test:** Run your project and watch how the fly moves. Try changing the numbers to get the effect you want. - -You can also drag this script to the **Insect** sprite so that it also moves randomly. +**Test:** Run your project and watch how the sprite moves. --- /task --- --- task --- -Change the insects until they behave the way you want them to. - -You could change the number of steps they `move`{:class="block3motion"} to make them faster or slower. - -You could also change the speed of the dragonfly. +Drag this script to the other **Insect** sprite to make it move randomly. --- /task --- --- task --- -You could also change the size that the dragonfly needs to grow to reach full size. - -Make changes until you are happy with your project. +Change the number of steps the sprites `move`{:class="block3motion"} to make them faster or slower. --- /task --- diff --git a/en/step_9.md b/en/step_9.md index c2795383..87a4f7c3 100644 --- a/en/step_9.md +++ b/en/step_9.md @@ -1,29 +1,45 @@ -## Upgrade your project +## Challenge
-In this step, try adding more insects, changing the way your project looks and behaves. +Change the way your insects behave and add more insects.
![The Stage showing three different types of insect and the dragonfly.](images/upgrade-project.png){:width="300px"}
-### Add more insects +--- task --- + +Change the speed of the dragonfly. + +--- /task --- -Add more insects. You might need to make them move faster, so they are harder for the dragonfly to catch. +--- task --- + +Change the size that the dragonfly needs to grow to reach full size. + +--- /task --- + +--- task --- + +Change the first **Insect** so that it can only be eaten with the dragonfly's mouth. + +--- /task --- + +### Add more insects You can paint your own insects or trying adding an emoji mosquito! --- task --- -Use the emoji keyboard to add a **Mosquito emoji** sprite. +Use the emoji keyboard to add a **Mosquito emoji** sprite. Duplicate an existing **insect** sprite then click on the **Costumes** tab. **Paint** a new costume and select the **Text** tool. Instead of typing text, use the emoji keyboard shortcut for your Operating System: -Windows - Windows key + '.' -MacOS - ctrl + cmd + space -Linux - ctrl + '.' +- Windows - ⊞ Win + . +- MacOS - control + command + space +- Linux - ctrl + . ![The popup emoji keyboard with the 'animals and nature' category selected.](images/emoji-keyboard.png) @@ -45,19 +61,14 @@ Use your Backpack to trade insects with your friends from their 'Grow a Dragonfl --- task --- -**Tip:** Check that all your sprites and costumes have sensible names. It makes your project easier to understand if you come back to it later. - -**Tip:** Make sure your code is laid out neatly in the Code area. Right-click on the Code area and choose **Clean up Blocks** to get Scratch to tidy up your code. +Check each sprite and costume has a name that describes the image. This makes your project easier to understand if you come back to it later. --- /task --- ---- collapse --- ---- -title: Completed project ---- +--- task --- -You can view the [completed project here](https://scratch.mit.edu/projects/521688740/){:target="_blank"}. +Right-click on the Code area and choose **Clean up Blocks** to get Scratch to tidy your code. ---- /collapse --- +--- /task --- --- save ---