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 ▶️
-Move the mouse (or your finger) around the Stage to eat insects. How do the insects move? +Move the mouse around the Stage to eat insects. How do the insects move? Which part of the dragonfly needs to touch the insects to eat them? What happens to the dragonfly when the dragonfly eats an insect?
@@ -25,7 +15,6 @@ Which part of the dragonfly needs to touch the insects to eat them? What happens
---- /task --- --- /no-print --- --- print-only --- diff --git a/en/step_10.md b/en/step_10.md deleted file mode 100644 index 5c2debf9..00000000 --- a/en/step_10.md +++ /dev/null @@ -1,19 +0,0 @@ -## What next? - -If you are following the [More scratch](https://projects.raspberrypi.org/en/raspberrypi/more-scratch) pathway, you can move on to the [Drum star](https://projects.raspberrypi.org/en/projects/drum-star) project. In this project, you will make a clicker game where you earn beats to play new drums at bigger venues. - ---- print-only --- - -![The Stage view of completed drum star project.](images/drum-star.png) - ---- /print-only --- - ---- no-print --- - -
- -
- ---- /no-print --- - -If you want to have more fun exploring Scratch, then you could try out any of [these projects](https://projects.raspberrypi.org/en/projects?software%5B%5D=scratch&curriculum%5B%5D=%201). diff --git a/en/step_2.md b/en/step_2.md index bb6ee7f3..08123ec8 100644 --- a/en/step_2.md +++ b/en/step_2.md @@ -11,18 +11,13 @@ You will set the scene. Choose your backdrop and add a dragonfly that follows th --- task --- -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]]] +Open the [Grow a dragonfly starter project](https://scratch.mit.edu/projects/535695413/editor){:target="_blank"}. Scratch will open a blank project in a new browser tab. --- /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,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 ``{: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..ef044b75 100644 --- a/en/step_7.md +++ b/en/step_7.md @@ -1,54 +1 @@ -## Random insect movement - -
-
-The insects in your app move in a very predictable pattern, but in real life they are hard to catch. - -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"} -
-
- ---- task --- - -Add a script to **Insect 2** to make it point in a random direction every 1–3 seconds. - -```blocks3 -when flag clicked -forever // Keep changing direction -point in direction (pick random [0] to [259]) -wait (pick random [1] to [3]) seconds -end -``` - ---- /task --- - ---- 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. - ---- /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. - ---- /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. - ---- /task --- - ---- save --- +## Quick quiz \ No newline at end of file diff --git a/en/step_8.md b/en/step_8.md index ef044b75..491de46a 100644 --- a/en/step_8.md +++ b/en/step_8.md @@ -1 +1,112 @@ -## Quick quiz \ No newline at end of file +## Challenge + +
+
+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"} +
+
+ +--- task --- + +Change the speed of the dragonfly. + +--- /task --- + +--- 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. + +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 - ⊞ Win + . +- MacOS - control + command + space +- Linux - ctrl + . + +![The popup emoji keyboard with the 'animals and nature' category selected.](images/emoji-keyboard.png) + +Select the **Mosquito** emoji to insert it into the Paint editor. Use the **Select** (arrow) tool to centre, resize, and rotate your mosquito until you are happy with it. + +![The mosquito emoji in the paint editor.](images/emoji-mosquito.png) + +**Tip:** Emojis can look different on different computers, so they might not look the same on a tablet and a desktop computer. Some emojis aren't available on some computers, but most modern computers will support them. + +--- /task --- + +### Create random movement + +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"} + +--- task --- + +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 +point in direction (pick random [0] to [259]) +wait (pick random [1] to [3]) seconds +end +``` + +--- /task --- + +--- task --- + +**Test:** Run your project and watch how the sprite moves. + +--- /task --- + +--- task --- + +Drag this script to the other **Insect** sprite to make it move randomly. + +--- /task --- + +### Share you insects + +--- task --- + +Use your Backpack to trade insects with your friends from their 'Grow a Dragonfly' projects. + +Send the link of your project to your friend who can go inside the project, click on Backpack (the one under the code space) and drag and drop the sprite. + +[[[scratch-backpack]]] + +--- /task --- + +--- task --- + +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 --- + +--- task --- + +Right-click on the Code area and choose **Clean up Blocks** to get Scratch to tidy your code. + +--- /task --- + +--- save --- diff --git a/en/step_9.md b/en/step_9.md index c2795383..c42eefeb 100644 --- a/en/step_9.md +++ b/en/step_9.md @@ -1,63 +1,19 @@ -## Upgrade your project +## What next? -
-
-In this step, try adding more insects, changing the way your project looks and behaves. -
-
-![The Stage showing three different types of insect and the dragonfly.](images/upgrade-project.png){:width="300px"} -
-
- -### Add more insects - -Add more insects. You might need to make them move faster, so they are harder for the dragonfly to catch. - -You can paint your own insects or trying adding an emoji mosquito! - ---- task --- - -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 + '.' - -![The popup emoji keyboard with the 'animals and nature' category selected.](images/emoji-keyboard.png) +If you are following the [More scratch](https://projects.raspberrypi.org/en/raspberrypi/more-scratch) pathway, you can move on to the [Drum star](https://projects.raspberrypi.org/en/projects/drum-star) project. In this project, you will make a clicker game where you earn beats to play new drums at bigger venues. -Select the **Mosquito** emoji to insert it into the Paint editor. Use the **Select** (arrow) tool to centre, resize, and rotate your mosquito until you are happy with it. +--- print-only --- -![The mosquito emoji in the paint editor.](images/emoji-mosquito.png) +![The Stage view of the completed Drum star project.](images/drum-star.png) -**Tip:** Emojis can look different on different computers, so they might not look the same on a tablet and a desktop computer. Some emojis aren't available on some computers, but most modern computers will support them. +--- /print-only --- ---- /task --- +--- no-print --- ---- task --- - -Use your Backpack to trade insects with your friends from their 'Grow a Dragonfly' projects. - -[[[scratch-backpack]]] - ---- /task --- - ---- 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. - ---- /task --- - ---- collapse --- ---- -title: Completed project ---- - -You can view the [completed project here](https://scratch.mit.edu/projects/521688740/){:target="_blank"}. +
+ +
---- /collapse --- +--- /no-print --- ---- save --- +If you want to have more fun exploring Scratch, then you could try out any of [these projects](https://projects.raspberrypi.org/en/projects?software%5B%5D=scratch&curriculum%5B%5D=%201).