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 12af3f8f..222cfa14 100644 --- a/en/meta.yml +++ b/en/meta.yml @@ -10,7 +10,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: @@ -18,7 +18,6 @@ steps: - title: Grow to full-size - title: Improved movement - title: More food - - title: Random insect movement completion: - internal - title: Quick quiz @@ -29,5 +28,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..fd6639b7 100644 --- a/en/step_1.md +++ b/en/step_1.md @@ -1,22 +1,12 @@ -## 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 ▶️-**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,11 +61,11 @@ 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. -![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) +Use the **Rotate** tool at bottom of the selected costume to turn the **Dragonfly** costume to face the right. -![The dragonfly costume selected and turned to face the right.](images/rotated-costume.png) +![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) --- /task --- @@ -90,10 +85,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 +103,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 `