From 9f15379f401938ff0e1f935fcfa4fd20913e2ba6 Mon Sep 17 00:00:00 2001 From: ganicke Date: Sun, 2 Jan 2022 14:41:52 -0800 Subject: [PATCH 1/2] First batch of skillmap line break adds --- docs/projects.md | 8 --- docs/skillmap/clicker-themed/clickert1.md | 53 +++++++------- docs/skillmap/clicker-themed/clickert2.md | 38 +++++----- docs/skillmap/clicker-themed/clickert3.md | 30 ++++---- docs/skillmap/clicker-themed/clickert4.md | 8 +-- docs/skillmap/clicker/clicker1.md | 18 ++--- docs/skillmap/clicker/clicker2.md | 22 +++--- docs/skillmap/clicker/clicker3.md | 42 +++++------ docs/skillmap/clicker/clicker4.md | 26 +++---- docs/skillmap/clicker/clicker4a.md | 2 +- docs/skillmap/collector-themed/collectort1.md | 72 +++++++++---------- docs/skillmap/collector-themed/collectort2.md | 56 +++++++-------- docs/skillmap/collector-themed/collectort3.md | 60 ++++++++-------- docs/skillmap/collector-themed/collectort4.md | 24 +++---- .../collector-themed/collectort4old.md | 42 +++++------ docs/skillmap/collector/collector1.md | 70 +++++++++--------- docs/skillmap/collector/collector1a.md | 15 ++-- docs/skillmap/collector/collector2.md | 32 ++++----- docs/skillmap/collector/collector3.md | 28 ++++---- docs/skillmap/collector/collector3a.md | 2 +- docs/skillmap/collector/collector4.md | 34 ++++----- docs/skillmap/forest/forest3.md | 4 +- docs/skillmap/forest/forest4.md | 8 +-- docs/skillmap/forest/forest6.md | 4 +- docs/skillmap/interface/activity1.md | 8 +-- docs/skillmap/jungle/jungle1.md | 30 ++++---- docs/skillmap/jungle/jungle2.md | 30 ++++---- docs/skillmap/jungle/jungle3.md | 42 +++++------ docs/skillmap/jungle/jungle4.md | 68 +++++++++--------- docs/skillmap/jungle/jungle5.md | 16 ++--- docs/skillmap/jungle/jungle6.md | 24 +++---- docs/skillmap/jungle/jungle7.md | 26 +++---- docs/skillmap/jungle/jungle8.md | 2 +- 33 files changed, 468 insertions(+), 476 deletions(-) diff --git a/docs/projects.md b/docs/projects.md index 3809f0d9a2a..23f3b6cdbff 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -14,13 +14,6 @@ "largeImageUrl": "/static/tutorials/chase-the-pizza.gif", "videoUrl": "/static/tutorials/chase-the-pizza.mp4" }, - { - "name": "Multipart Tutorials", - "url": "/multipart-tutorials", - "imageUrl": "/static/recipes/shark-splash/shark-splash.png", - "largeImageUrl": "/static/recipes/shark-splash/02-C-enemies.gif", - "videoUrl": "/static/recipes/shark-splash/02-C-enemies.mp4" - }, { "name": "Live Coding", "url": "/live-coding", @@ -108,7 +101,6 @@ [Skillmaps](/skillmaps), [Tutorials](/tutorials), -[Multipart Tutorials](/multipart-tutorials), [Live Coding](/live-coding), [Blocks Games](/blocks-games), [JavaScript Games](/javascript-games), diff --git a/docs/skillmap/clicker-themed/clickert1.md b/docs/skillmap/clicker-themed/clickert1.md index d23c4b2d44e..776dce3b5b9 100644 --- a/docs/skillmap/clicker-themed/clickert1.md +++ b/docs/skillmap/clicker-themed/clickert1.md @@ -9,17 +9,17 @@ Let's make a clicker game! ## {Step 2} -**This game will test your speed as you click as quickly as possible to earn points.** -⭐ ⭐ ⭐ +**This game will test your speed as you click as quickly as possible to earn points.**
+⭐ ⭐ ⭐ Let's prep the stage by adding a background. --- -- :tree: Open the ``||scene:Scene||`` category and drag -``||scene: set background image to [ ]||`` -into the ``||loops:on start||`` +- :tree: Open the ``||scene:Scene||`` category and drag
+``||scene: set background image to [ ]||``
+into the ``||loops:on start||``
container that's already in the workspace. - :mouse pointer: When you're done, click **Next** to see the next step. @@ -38,14 +38,14 @@ scene.setBackgroundImage(img` ## {Step 3} -**Choose your background!** +**Choose your background!**
🖼 🖼 🖼 --- -- :paint brush: Click the grey box inside -``||scene: set background image to [ ]||`` +- :paint brush: Click the grey box inside
+``||scene: set background image to [ ]||``
to open the image editor and toggle to the **My Assets** tab. @@ -66,7 +66,8 @@ scene.setBackgroundImage(assets.image`TheStage`) ## {Step 3.5} -**Click the Game Window Tab (Above)** +**Click the Game Window Tab (Above)**
+ ![Click the Game Window tab to see your scene. ](/static/skillmap/assets/game-win-tab.png "Don't forget to look at your game!") --- @@ -76,6 +77,7 @@ Do you see the background you chose? ## {Step 4} + Add a [__*splash screen*__](#splasht "A full-screen message that shows while a program or level is loading") to let the user know to press the **Ⓐ** button when they're ready to start playing. @@ -83,14 +85,13 @@ Add a [__*splash screen*__](#splasht "A full-screen message that shows while a p - :circle: Open the ``||game:Game||`` category and drag the -``||game: splash [" "]||`` -block into the bottom of the +``||game: splash [" "]||``
+block into the bottom of the
``||loops:on start||`` container. -- :mouse pointer: Click inside the empty text area of the -``||game: splash [" "]||`` -block and type a message letting the -user know they should press (A) to play. +- :mouse pointer: Click inside the empty text area of the
+``||game: splash [" "]||``
+block and type a message letting the user know they should press (A) to play. ```blocks @@ -110,14 +111,13 @@ the score when the **Ⓐ** button is clicked. --- -- :game: From the ``||controller:Controller||`` category, grab the -``||controller: on [A] button [pressed]||`` -container and drop it into an -empty spot in the workspace. +- :game: From the ``||controller:Controller||`` category, grab the
+``||controller: on [A] button [pressed]||``
+container and drop it into an empty spot in the workspace. -- :id card: From ``||info:Info||``, drag out the -``||info:change score by [1]||`` -block and snap it into +- :id card: From ``||info:Info||``, drag out the
+``||info:change score by [1]||``
+block and snap it into
``||controller: on [A] button [pressed]||``. @@ -130,7 +130,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () { ## {Step 6} -**Test your game on the game screen** +**Test your game on the game screen**
🎮 🎮 🎮 Do you see your score go up each time you press the **Ⓐ** button? @@ -143,10 +143,9 @@ the player a clear endpoint. --- -- :id card: Open the ``||info:Info||`` category and -drag the -``||info: start countdown [10] (s)||`` -block into **the bottom** of the +- :id card: Open the ``||info:Info||`` category and drag the
+``||info: start countdown [10] (s)||``
+block into **the bottom** of the
``||loops:on start||`` container. diff --git a/docs/skillmap/clicker-themed/clickert2.md b/docs/skillmap/clicker-themed/clickert2.md index e82c5e26780..d46c43f1773 100644 --- a/docs/skillmap/clicker-themed/clickert2.md +++ b/docs/skillmap/clicker-themed/clickert2.md @@ -28,9 +28,9 @@ button [__*sprite*__](#sprote "a 2-D image that moves on the screen") to the scr --- -- :paper plane: From ``||sprites:Sprites||`` drag out -``||variables:set [mySprite] to sprite [ ] of kind [Player]||`` -and snap it into **the bottom** of the +- :paper plane: From ``||sprites:Sprites||`` drag out
+``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
+and snap it into **the bottom** of the
``||loops:on start||`` container. - :paint brush: Click the grey square and toggle to **My Assets** @@ -51,14 +51,14 @@ mySprite = sprites.create(assets.image`A static`, SpriteKind.Player) ## {Step 4} **Make your button look like it's being pressed -with each click** +with each click**
✨ ✨ ✨ --- -- :paper plane: From ``||sprites:Sprites||``, grab -``||sprites: set [mySprite] image to [ ]||`` -and snap it into **the bottom** of the +- :paper plane: From ``||sprites:Sprites||``, grab
+``||sprites: set [mySprite] image to [ ]||``
+and snap it into **the bottom** of the
``||controller:on [A] button [pressed]||`` container. - :paint brush: Click the grey square and toggle to **My Assets** and choose a button in the **down** position. @@ -83,19 +83,21 @@ Does the button look like it goes down when (A) is pressed? ## {Step 6} -Right now, the button never goes back up once pressed. +Right now, the button never goes back up once pressed.
**Let's change that!** --- -- :game: Drag another -``||controller:on [A] button [pressed]||`` +- :game: Drag another
+``||controller:on [A] button [pressed]||``
container into an empty area of the workspace. -- :mouse pointer: Change ``||controller:[pressed]||`` to ``||controller:[released]||`` using the dropdown menu. +- :mouse pointer: Change ``||controller:[pressed]||``
+to ``||controller:[released]||``
+using the dropdown menu. -- :paper plane: Snap a new -``||sprites: set [mySprite] image to [ ]||`` +- :paper plane: Snap a new
+``||sprites: set [mySprite] image to [ ]||``
block inside, then toggle to **My Assets** and choose the same **up** button image that you used for the original sprite. @@ -121,12 +123,12 @@ It also automatically tells you that **you've lost** when time runs out. Let's c --- -- :id card: From the ``||info:Info||`` category, grab an -``||info:on countdown end||`` +- :id card: From the ``||info:Info||`` category, grab an
+``||info:on countdown end||``
container and drop it into an empty area of the workspace. -- :circle: Now, open the ``||game:Game||`` category and pick -``||game: game over ⊕||`` . +- :circle: Now, open the ``||game:Game||`` category and pick
+``||game: game over ⊕||``.
Snap it inside the empty **on countdown end** container. - :mouse pointer: Toggle **LOSE** to **WIN**. @@ -145,7 +147,7 @@ Now add a final celebration with some **game over** effects! --- -- :mouse pointer: Click the **+** icon to the right of the +- :mouse pointer: Click the **+** icon to the right of the
``||game: game over ⊕||`` block. - :mouse pointer: If you want an effect other than confetti, diff --git a/docs/skillmap/clicker-themed/clickert3.md b/docs/skillmap/clicker-themed/clickert3.md index d5f924c7f06..804cbb9243c 100644 --- a/docs/skillmap/clicker-themed/clickert3.md +++ b/docs/skillmap/clicker-themed/clickert3.md @@ -17,11 +17,11 @@ some flying star [__*projectiles*__](#projected "sprites that moves on their own --- -- :paper plane: From ``||sprites:Sprites||``, grab -``||variables:set [projectile] to projectile [ ] from [mySprite] with vx [50] vy [50]||`` -and drop it into **the end** of the -``||controller:on [A] button [pressed]||`` container -already in the workspace. +- :paper plane: From ``||sprites:Sprites||``, grab
+``||variables:set [projectile] to projectile [ ] from [mySprite] with vx [50] vy [50]||``
+and drop it into **the end** of the
+``||controller:on [A] button [pressed]||``
+container already in the workspace. - :mouse pointer: Click **Next** to move on to the next instruction. @@ -70,12 +70,12 @@ Does a star come out of your button each time you press the (A) button? --- -- :calculator: From the ``||math:Math||`` category, drag out **TWO** -``||math: pick random [0] to [10]||`` +- :calculator: From the ``||math:Math||`` category, drag out **TWO**
+``||math: pick random [0] to [10]||``
blocks. -- :mouse pointer: Add the first to the [__*vx*__](#whatVX "horizontal velocity") argument of the -``||variables:set [projectile] to projectile [⭐] from [mySprite] with vx [50] vy [50]||`` +- :mouse pointer: Add the first to the [__*vx*__](#whatVX "horizontal velocity") argument of the
+``||variables:set [projectile] to projectile [⭐] from [mySprite] with vx [50] vy [50]||``
block. - :mouse pointer: Add the second to the [__*vy*__](#whatVY "vertical velocity") argument. @@ -94,14 +94,14 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () { ## {Step 6} -- :mouse pointer: Change the range of the first -``||math: pick random [0] to [10]||`` -block (next to **vx**) to pick between +- :mouse pointer: Change the range of the first
+``||math: pick random [0] to [10]||``
+block (next to **vx**) to pick between
**-100** and **100**. This will scatter stars randomly from side to side. -- :mouse pointer: Change the range of the second -``||math: pick random [0] to [10]||`` -block (next to **vy**) to pick between +- :mouse pointer: Change the range of the second
+``||math: pick random [0] to [10]||``
+block (next to **vy**) to pick between
**-50** and **-100**. This will make sure the stars only move upward. diff --git a/docs/skillmap/clicker-themed/clickert4.md b/docs/skillmap/clicker-themed/clickert4.md index 32c98f650d6..dfdfa110a3e 100644 --- a/docs/skillmap/clicker-themed/clickert4.md +++ b/docs/skillmap/clicker-themed/clickert4.md @@ -47,11 +47,11 @@ upgrade the power. --- -- :mouse pointer: From ``||logic:Logic||``, choose the top -``||logic:if then||`` container and drag it into the top of your +- :mouse pointer: From ``||logic:Logic||``, choose the top
+``||logic:if then||`` container and drag it into the top of your
**on B button pressed** container already in the workspace. -- :mouse pointer: To compare values, open the ``||logic: Logic||`` +- :mouse pointer: To compare values, open the ``||logic: Logic||``
category and grab a ``||logic: [0] [<] [0]||`` to replace **``**. @@ -163,7 +163,7 @@ controller.B.onEvent(ControllerButtonEvent.Pressed, function () { **⚡️ Amazing ⚡️** -Now you have a clicker game with a simple shop. Give it a try on the game screen. +Now you have a clicker game with a simple shop. Give it a try on the game screen. Click **Done** to return to the main page where you can share your game with family and friends! diff --git a/docs/skillmap/clicker/clicker1.md b/docs/skillmap/clicker/clicker1.md index 0d14407b0fa..a5f6fde228c 100644 --- a/docs/skillmap/clicker/clicker1.md +++ b/docs/skillmap/clicker/clicker1.md @@ -57,8 +57,8 @@ Let's start building the scoreboard by adding a background color. --- -► Choose a background color by opening the ``||scene:Scene||`` category and dragging -``||scene: set background color to [ ]||`` into the ``||loops:on start||`` +► Choose a background color by opening the ``||scene:Scene||`` category and dragging
+``||scene: set background color to [ ]||`` into the ``||loops:on start||``
container that's already in the workspace. ► When you're done, click **> Next** to see the next step. @@ -97,7 +97,7 @@ Add a [__*splash screen*__](#splasht "A full-screen message that shows while a p --- -► Open the ``||game:Game||`` category and +► Open the ``||game:Game||`` category and
drag the ``||game: splash [" "]||`` block into the bottom of the **on start** container. @@ -121,11 +121,11 @@ the score when the **Ⓐ** button is clicked. --- -► From the ``||controller:Controller||`` category, grab the -``||controller: on [A] button [pressed]||`` container and drop it into an +► From the ``||controller:Controller||`` category, grab the
+``||controller: on [A] button [pressed]||`` container and drop it into an
empty spot in the workarea. -► From ``||info:Info||``, drag out the ``||info:change score by [1]||`` block +► From ``||info:Info||``, drag out the ``||info:change score by [1]||`` block
and snap it into the new container. @@ -144,8 +144,8 @@ the player a clear endpoint. --- -► Open the ``||info:Info||`` category and -drag the ``||info: start countdown [10] (s)||`` block into the bottom of the +► Open the ``||info:Info||`` category and
+drag the ``||info: start countdown [10] (s)||`` block into the bottom of the
``||loops:on start||`` container. @@ -160,7 +160,7 @@ info.startCountdown(10) **🎉 Congrats 🎉** -You have your very own clicker game! Play it on the game screen and see how many clicks you can get. +You have your very own clicker game! Play it on the game screen and see how many clicks you can get. Click **Done** to return to the main page where you can share your game with family and friends to compare scores! \ No newline at end of file diff --git a/docs/skillmap/clicker/clicker2.md b/docs/skillmap/clicker/clicker2.md index 9fa5b20f960..90c18c6d007 100644 --- a/docs/skillmap/clicker/clicker2.md +++ b/docs/skillmap/clicker/clicker2.md @@ -89,10 +89,10 @@ Let's make this game fun to look at by adding a --- -► From ``||sprites:Sprites||`` drag out ``||variables:set [mySprite] to sprite [ ] of kind [Player]||`` +► From ``||sprites:Sprites||`` drag out ``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
and snap it into the bottom of the ``||loops:on start||`` container. -► Add your sprite by clicking inside the grey square and drawing something +► Add your sprite by clicking inside the grey square and drawing something
eye-catching. You could draw a cloud, a sprinkler, a flower, or a cookie! --- @@ -134,8 +134,8 @@ with each click ✨** --- -► From ``||sprites:Sprites||``, grab -``||sprites: [mySprite] start [spray] effect ⊕||`` and snap it +► From ``||sprites:Sprites||``, grab
+``||sprites: [mySprite] start [spray] effect ⊕||`` and snap it
into the bottom of the ``||controller:on [A] button [pressed]||`` container. @@ -160,10 +160,10 @@ change between clicks. --- -► Click the **⊕** icon to the right of the ``||sprites: [mySprite] start [spray] effect ⊕||`` +► Click the **⊕** icon to the right of the ``||sprites: [mySprite] start [spray] effect ⊕||``
block (the one already inside the **on A button pressed** container.) -► Shorten the number of miliseconds (ms) that the effect runs by entering +► Shorten the number of miliseconds (ms) that the effect runs by entering
**100** in the text box. ```blocks @@ -193,11 +193,11 @@ Let's change that. --- -► From the ``||info:Info||`` category, grab a ``||info:on countdown end||`` +► From the ``||info:Info||`` category, grab a ``||info:on countdown end||``
container and drop it into an empty area of the workspace. -► Now, open the ``||game:Game||`` category and pick -``||game: game over ⊕||`` . Snap it inside the empty +► Now, open the ``||game:Game||`` category and pick
+``||game: game over ⊕||`` . Snap it inside the empty
**on countdown end** container. ► Toggle **LOSE** to **WIN**. @@ -216,9 +216,9 @@ Now add a final celebration with some **game over** effects! --- -► Click the **⊕** icon to the right of the ``||game: game over ⊕||`` block. +► Click the **⊕** icon to the right of the ``||game: game over ⊕||`` block.
-► If you want an effect other than confetti, click the word **confetti** +► If you want an effect other than confetti, click the word **confetti**
and choose a new option from the dropdown. diff --git a/docs/skillmap/clicker/clicker3.md b/docs/skillmap/clicker/clicker3.md index 5b1d8101b55..bd144b0dcb3 100644 --- a/docs/skillmap/clicker/clicker3.md +++ b/docs/skillmap/clicker/clicker3.md @@ -108,13 +108,13 @@ Let's allow the player to buy a more powerful clicker when they press the --- -► From ``||controller:Controller||``, grab an -``||controller:on [A] button [pressed]||`` container and drop it into -an empty area in the workspace. -*Note: The block will appear faded at first because it conflicts with the other +► From ``||controller:Controller||``, grab an
+``||controller:on [A] button [pressed]||`` container and drop it into
+an empty area in the workspace.
+*Note: The block will appear faded at first because it conflicts with the other
**on button pressed** container in the workspace.* -► Click **A** in the empty **on button pressed** container, and choose +► Click **A** in the empty **on button pressed** container, and choose
**B** from the dropdown menu. @@ -129,16 +129,16 @@ controller.B.onEvent(ControllerButtonEvent.Pressed, function () { Adding another increment to the **Ⓑ** button would only allow the score to increase faster one time for each click. -To make a permanent change, we'll need to add a +To make a permanent change, we'll need to add a
[__*variable*__](#varied "a label that holds the place for something that can change"). --- -► Open the ``||variables:Variables||`` category and click the button +► Open the ``||variables:Variables||`` category and click the button
to **[Make a Variable]**. -► In the prompt, type the name of the variable that will keep track of -how powerful your clicker is. For the rest of this tutorial, we'll refer to +► In the prompt, type the name of the variable that will keep track of
+how powerful your clicker is. For the rest of this tutorial, we'll refer to
that variable as **power**. ► Click **OK** to save your variable and close the window. @@ -150,16 +150,16 @@ that variable as **power**. We've got a variable, but before we can use it, it needs to mean something. -Let's [__*initialize*__](#init "Set the starting value") +Let's [__*initialize*__](#init "Set the starting value")
**power** by setting a value before it's used. --- -► From ``||variables:Variables||``, grab the -``||variables:set [power] to [0]||`` block and add it to the end of the +► From ``||variables:Variables||``, grab the
+``||variables:set [power] to [0]||`` block and add it to the end of the
``||loops:on start||`` container. -► Change **0** to **1** to make it easy to replace the increment value +► Change **0** to **1** to make it easy to replace the increment value
we're already relying on. @@ -198,11 +198,11 @@ so that every click responds to our changing values. --- -► Open the ``||variables:Variables||`` category and grab a +► Open the ``||variables:Variables||`` category and grab a
``||variables:power||`` value block. -► Drop ``||variables:power||`` into the **change score by** block (inside of -the **on A button pressed** container), +► Drop ``||variables:power||`` into the **change score by** block (inside of
+the **on A button pressed** container),
replacing the number **1**. ```blocks @@ -223,8 +223,8 @@ larger after **Ⓑ** is pressed. --- -► Open the ``||variables:Variables||`` category. Grab a -``||variables:change [power] by [1]||`` variable and snap it into the +► Open the ``||variables:Variables||`` category. Grab a
+``||variables:change [power] by [1]||`` variable and snap it into the
empty **on B button pressed** container. ```blocks @@ -244,11 +244,11 @@ Finally, let's add a block to tell the user that they've got extra powers! --- -► From ``||game:Game||``, grab -``||game:show long text [" "] [bottom]||`` and snap it into the +► From ``||game:Game||``, grab
+``||game:show long text [" "] [bottom]||`` and snap it into the
end of the **on B button pressed** container. -► Write your text, then play around with the location options to see where you like +► Write your text, then play around with the location options to see where you like
your message best. ```blocks diff --git a/docs/skillmap/clicker/clicker4.md b/docs/skillmap/clicker/clicker4.md index c2345baca0d..2666d359aa0 100644 --- a/docs/skillmap/clicker/clicker4.md +++ b/docs/skillmap/clicker/clicker4.md @@ -121,7 +121,7 @@ what fun is it to get extra power for free? Let's add code to charge the player --- -► From the ``||info:Info||`` category, grab a ``||info:change score by [1]||`` +► From the ``||info:Info||`` category, grab a ``||info:change score by [1]||``
block and snap it into the top of the **on B button pressed** container. ► Change the value in the new block from **1** to **-10**. @@ -146,11 +146,11 @@ upgrade the power. --- -► From ``||logic:Logic||``, choose the top -``||logic:if then||`` container and drag it into the top of your +► From ``||logic:Logic||``, choose the top
+``||logic:if then||`` container and drag it into the top of your
**on B button pressed** container already in the workspace. -► To compare values, open the ``||logic: Logic||`` +► To compare values, open the ``||logic: Logic||``
category and grab a ``||logic: [0] [<] [0]||`` to replace **``**. @@ -173,11 +173,11 @@ before we charge the player 10 points. --- -► To make sure the score is larger than (or equal to) 10, replace the first -**0** in ``||logic: [0] [<] [0]||`` with **10** and change **<** +► To make sure the score is larger than (or equal to) 10, replace the first
+**0** in ``||logic: [0] [<] [0]||`` with **10** and change **<**
to **≤**. -► Open the ``||info:Info||`` category and find the ``||info:score||`` value block. +► Open the ``||info:Info||`` category and find the ``||info:score||`` value block.
Grab it and drop it in to replace the remaining **0** of the comparison argument. @@ -201,8 +201,8 @@ Now if the player has a large enough score, you can charge them --- -► The code to adjust the score and power are already at the bottom of the -**on B button pressed** container. Grab all of the code below and +► The code to adjust the score and power are already at the bottom of the
+**on B button pressed** container. Grab all of the code below and
drag it into the empty **if/then** container. @@ -233,14 +233,14 @@ buy the clicker. --- -► We already have a note that shows **if** the player has enough points. -Click the **⊕** at the bottom of the **if/then** container to create an **else** space +► We already have a note that shows **if** the player has enough points.
+Click the **⊕** at the bottom of the **if/then** container to create an **else** space
for code that runs when the **if** statement is not true. -► Now you have an **else** container. Grab another +► Now you have an **else** container. Grab another
``||game:show long text [" "] [bottom]||`` and drag it into the empty **else**. -► Click into the textarea of the new block and write a message to let your +► Click into the textarea of the new block and write a message to let your
player know that they didn't have enough points for an auto-clicker. diff --git a/docs/skillmap/clicker/clicker4a.md b/docs/skillmap/clicker/clicker4a.md index 0f6429594e7..8f399c2e3cd 100644 --- a/docs/skillmap/clicker/clicker4a.md +++ b/docs/skillmap/clicker/clicker4a.md @@ -126,7 +126,7 @@ what fun is it to get extra power for free? Let's add code to charge the player --- -► From the ``||info:Info||`` category, grab a ``||info:change score by [1]||`` +► From the ``||info:Info||`` category, grab a ``||info:change score by [1]||``
block and snap it into the top of the **on B button pressed** container. ► Change the value in the new block from **1** to **-10**. diff --git a/docs/skillmap/collector-themed/collectort1.md b/docs/skillmap/collector-themed/collectort1.md index deb8268353a..f0e7c576ec3 100644 --- a/docs/skillmap/collector-themed/collectort1.md +++ b/docs/skillmap/collector-themed/collectort1.md @@ -19,9 +19,9 @@ We're going to start with Mama Dino. --- -- :paper plane: From the ``||sprites:Sprites||`` category, grab -``||variables:set [mySprite] to sprite [ ] of kind [Player]||`` -and drag it into the empty +- :paper plane: From the ``||sprites:Sprites||`` category, grab
+``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
+and drag it into the empty
``||loops:on start||`` container in the workspace. - :paint brush: Click the empty grey square and toggle to **My Assets** @@ -48,15 +48,15 @@ Let's get our sprite moving up and down with the controller. --- -- :game: From the ``||contoller:Controller||`` category, grab a -``||controller:move [mySprite] with buttons ⊕||`` -block and snap it into **the bottom** of the +- :game: From the ``||contoller:Controller||`` category, grab a
+``||controller:move [mySprite] with buttons ⊕||``
+block and snap it into **the bottom** of the
``||loops:on start||`` container. -- :mouse pointer: Click the **⊕** button on the new block to show extra +- :mouse pointer: Click the **⊕** button on the new block to show extra
value fields. -- :mouse pointer: To keep the sprite from moving side-to-side, change +- :mouse pointer: To keep the sprite from moving side-to-side, change
[__*vx*__](#whatVX "horizontal velocity") (horizontal speed) to **0**. @@ -84,9 +84,9 @@ If things get out of control, your sprite can leave the screen! Let's fix that. --- -- :paper plane: From ``||sprites:Sprites||``, grab -``||sprites:set [mySprite] stay in screen ||`` -and snap it into **the bottom** +- :paper plane: From ``||sprites:Sprites||``, grab
+``||sprites:set [mySprite] stay in screen ||``
+and snap it into **the bottom**
of the ``||loops:on start||`` container. @@ -107,9 +107,9 @@ mySprite.setStayInScreen(true) --- -- :paper plane: From ``||scene:Scene||``, grab -``||scene:set background image to [ ]||`` -and snap it into **the top** +- :paper plane: From ``||scene:Scene||``, grab
+``||scene:set background image to [ ]||``
+and snap it into **the top**
of the ``||loops:on start||`` container. - :paint brush: Click the **grey square** in the new block and toggle to **My Assets** to choose the **Freeway** background. @@ -131,10 +131,10 @@ mySprite.setStayInScreen(true) --- -- :arrows alternate: To make it look like the dino is walking along the road, -go to ``||scroller:Scroller||`` and drag -``||scroller:scroll background with vx [-50] vy [-50]||`` -into **the end** +- :arrows alternate: To make it look like the dino is walking along the road,
+go to ``||scroller:Scroller||`` and drag
+``||scroller:scroll background with vx [-50] vy [-50]||``
+into **the end**
of the ``||loops:on start||`` container. - :mouse pointer: Stop the background from scrolling vertically by changing the value of **vy** to **0**. @@ -167,14 +167,14 @@ Let's add some baby dinos for the momma dinosaur to rescue 💚 --- -- :redo: From ``||loops:Loops||``, grab a -``||loops:forever||`` -loop container and drag it into +- :redo: From ``||loops:Loops||``, grab a
+``||loops:forever||``
+loop container and drag it into
an empty spot on the workspace. -- :paper plane: From ``||sprites:Sprites||``, grab -``||variables:set [projectile] to projectile [ ] from side with vx [50] vy [50]||`` -and snap it into the empty +- :paper plane: From ``||sprites:Sprites||``, grab
+``||variables:set [projectile] to projectile [ ] from side with vx [50] vy [50]||``
+and snap it into the empty
``||loops:forever||`` container. - :paint brush: Click the **grey square** in the new block and toggle to **My Assets** to choose the **Baby** sprite. @@ -189,7 +189,7 @@ forever(function () { ## {Step 10} -- :mouse pointer: To make the babies look like they're walking along the road, change +- :mouse pointer: To make the babies look like they're walking along the road, change
[__*vx*__](#whatVX "horizontal velocity") (or horizontal speed) to **-90**. - :mouse pointer: Change [__*vy*__](#whatVY "vertical velocity") (or vertical speed) to **0** so they don't float up or down. @@ -214,9 +214,9 @@ send the babies in from a random height each time. --- -- :paper plane: From ``||sprites:Sprites||``, grab a -``||sprites:set [mySprite] [x] to [0]||`` -block and snap it into **the end** of the +- :paper plane: From ``||sprites:Sprites||``, grab a
+``||sprites:set [mySprite] [x] to [0]||``
+block and snap it into **the end** of the
``||loops:forever||`` loop container. - :mouse pointer: Change **mySprite** to **projectile** using the first dropdown menu. @@ -238,13 +238,13 @@ forever(function () { **This is looking great, but they still hover around the top.** --- -- :calculator: In -``||sprites:set [mySprite] [y] to [0]||``, -replace **0** with -``||math:pick random [0] to [10]||``. +- :calculator: In
+``||sprites:set [mySprite] [y] to [0]||``,
+replace **0** with
+``||math:pick random [0] to [10]||``.
(From the ``||math:Math||`` category) -- :mouse pointer: Help the babies spread out along the road by changing the smallest random number from **0** to **15** and the largest random number from +- :mouse pointer: Help the babies spread out along the road by changing the smallest random number from **0** to **15** and the largest random number from
**10** to **115**. ```blocks @@ -259,10 +259,10 @@ forever(function () { ## {Step 13} - :redo: Keep the babies from running out at the speed of light by -adding a -``||loops:pause [100] ms||`` +adding a
+``||loops:pause [100] ms||``
block (from the ``||loops:Loops||`` -category) to **the end** of the +category) to **the end** of the
``||loops:forever||`` loop. - :mouse pointer: Change the pause time to **1000 ms** by clicking in the textbox and typing diff --git a/docs/skillmap/collector-themed/collectort2.md b/docs/skillmap/collector-themed/collectort2.md index a9fcb38f889..9edcbb163d4 100644 --- a/docs/skillmap/collector-themed/collectort2.md +++ b/docs/skillmap/collector-themed/collectort2.md @@ -14,7 +14,7 @@ The start of a collector game is in your workspace. Let's take it even further b ## {Step 2} -**Play the game in the workspace before you begin** +**Play the game in the workspace before you begin**
🎮 🎮 🎮 Can you move Mama Dino around the screen? Do baby dinos walk toward you? @@ -23,16 +23,16 @@ Can you move Mama Dino around the screen? Do baby dinos walk toward you? ## {Step 3} -**We're off to a great start!!** +**We're off to a great start!!**
Let's add some code that tells the game what to do when the mom reaches her baby. --- -- :paper plane: From ``||sprites:Sprites||``, grab an -``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Player]||`` +- :paper plane: From ``||sprites:Sprites||``, grab an
+``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Player]||``
container and drop it into an empty area of the workspace. -- :mouse pointer: Change the second kind from +- :mouse pointer: Change the second kind from
``||sprites:Player||`` to ``||sprites:Projectile||``. ```blocks @@ -46,22 +46,22 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Projectile, function (sprite, ot ## {Step 4} -Now we have a container for code that runs when Mama Dino overlaps the babies. +Now we have a container for code that runs when Mama Dino overlaps the babies.
**Let's add a block to remove the babies from the play area when you catch them.** --- -- :paper plane: From ``||sprites:Sprites||``, grab -``||sprites:destroy [mySprite]||`` -and snap it into the empty -``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||`` +- :paper plane: From ``||sprites:Sprites||``, grab
+``||sprites:destroy [mySprite]||``
+and snap it into the empty
+``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||``
container. -- :mouse pointer: To make sure that the correct projectile is destroyed, grab the -``||variables:otherSprite||`` value from the title of -``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||`` +- :mouse pointer: To make sure that the correct projectile is destroyed, grab the
+``||variables:otherSprite||`` value from the title of
+``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||``
and drop it into the -``||sprites:destroy [mySprite]||`` +``||sprites:destroy [mySprite]||``
block to replace the value **mySprite**. ![Grab otherSprite from header](/static/skillmap/assets/give-var.gif "Replace mySprite with the otherSprite variable" ) @@ -89,9 +89,9 @@ Let's add a point to your score each time you save a baby. --- -- :id card: From ``||info:Info||``, grab -``||info:change score by [1]||`` -and snap it into **the bottom** of +- :id card: From ``||info:Info||``, grab
+``||info:change score by [1]||``
+and snap it into **the bottom** of
``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||``. @@ -107,7 +107,7 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Projectile, function (sprite, ot ## {Step 6} -**Now try it out on the game screen** +**Now try it out on the game screen**
🎮 🎮 🎮 How do you like your game so far? @@ -144,17 +144,17 @@ forever(function () { ## {Step 7} -**Does this game feel long to you?** +**Does this game feel long to you?**
🕔 🕔 🕔 -We haven't added a way to win or lose. +We haven't added a way to win or lose.
Let's do that now by adding a countdown timer. --- -- :id card: From ``||info:Info||``, choose the -``||info:start countdown [10] (s)||`` -and snap it into the end of the +- :id card: From ``||info:Info||``, choose the
+``||info:start countdown [10] (s)||``
+and snap it into the end of the
``||loops:on start||`` container. - :mouse pointer: Change **10** to **15** for more playtime goodness. @@ -178,12 +178,12 @@ Right now, when time runs out, you lose the game. We can change that! --- -- :id card: From ``||info:Info||``, grab the -``||info:on countdown end||`` +- :id card: From ``||info:Info||``, grab the
+``||info:on countdown end||``
container and drop it into a blank area of the workspace. -- :circle: Now, from ``||game:Game||``, pick a -``||game:game over ||`` +- :circle: Now, from ``||game:Game||``, pick a
+``||game:game over ||``
block and snap it into the empty **on countdown end** container. - :mouse pointer: Toggle **``** to **``**. @@ -198,7 +198,7 @@ info.onCountdownEnd(function () { ## {Step 9} -**Now play your winning creation** +**Now play your winning creation**
🏆 🏆 🏆 Mama Dino can collect her babies and earn points! How many babies can you collect in **15 seconds**? diff --git a/docs/skillmap/collector-themed/collectort3.md b/docs/skillmap/collector-themed/collectort3.md index 8a3b9d1e38c..6a997af58a9 100644 --- a/docs/skillmap/collector-themed/collectort3.md +++ b/docs/skillmap/collector-themed/collectort3.md @@ -13,7 +13,7 @@ This tutorial will show you how to add cars to the road. ## {Step 2} -The code for a collector game is already in the workspace. +The code for a collector game is already in the workspace.
🕹️ 🕹️ 🕹️ Play your game to make sure you can collect the baby dinos as they move toward you. @@ -26,12 +26,12 @@ Let's add a new kind of projectile, an ``||sprites:Enemy||``! --- -- :redo: Grab a new -``||loops:forever||`` +- :redo: Grab a new
+``||loops:forever||``
loop container and drop it into an empty area of the workspace. -- :paper plane: From ``||sprites:Sprites||``, drag -``||variables:set [projectile2] to projectile [ ] from side with vx [50] vy [50]||`` +- :paper plane: From ``||sprites:Sprites||``, drag
+``||variables:set [projectile2] to projectile [ ] from side with vx [50] vy [50]||``
into the new ``||loops:forever||`` loop container. ```blocks @@ -63,13 +63,13 @@ forever(function () { ## {Step 4} -**Our new enemy isn't quite ready.** +**Our new enemy isn't quite ready.**
We still have to set the vertical positions on the screen and add a pause to the loop. --- -- :paper plane: Just like we did when making the baby dinos, we'll need to grab -``||sprites:set [mySprite] [x] to [0]||`` +- :paper plane: Just like we did when making the baby dinos, we'll need to grab
+``||sprites:set [mySprite] [x] to [0]||``
and snap it in **below** the new projectile block. - :mouse pointer: Change ``||variables:mySprite||`` to ``||variables:projectile2||`` and change **x** to **y**. @@ -87,8 +87,8 @@ forever(function () { ## {Step 5} -- :redo: Add -``||loops:pause [100] ms||`` +- :redo: Add
+``||loops:pause [100] ms||``
to the bottom of this ``||loops:forever||`` loop. - :mouse pointer: Replace **100** with **2100**. @@ -120,14 +120,14 @@ Running into an enemy INCREASES your score. That's not right. Let's add code to --- -- :paper plane: From ``||sprites:Sprites||``, grab a -``||sprites:set [mySprite] kind to [Player]||`` -block and snap it just **ABOVE** the **pause** block in the enemy's +- :paper plane: From ``||sprites:Sprites||``, grab a
+``||sprites:set [mySprite] kind to [Player]||``
+block and snap it just **ABOVE** the **pause** block in the enemy's
``||loops:forever||`` loop container. -- :mouse pointer: In -``||sprites:set [mySprite] kind to [Player]||``, -change ``||variables:mySprite||`` to ``||variables:projectile2||`` +- :mouse pointer: In
+``||sprites:set [mySprite] kind to [Player]||``,
+change ``||variables:mySprite||`` to ``||variables:projectile2||``
and change ``||sprites:Player||`` to ``||sprites:Enemy||``. @@ -147,17 +147,17 @@ forever(function () { **😈 Wicked 😈** -Now the program knows the car is an enemy. +Now the program knows the car is an enemy.
What are we going to do about it? --- -- :mouse pointer: Right-click the -``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||`` - container that's already in the workspace and choose **Duplicate**. +- :mouse pointer: Right-click the
+``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||``
+container that's already in the workspace and choose **Duplicate**. -- :mouse pointer: In the new greyed-out container, -change the second **kind** from ``||sprites:Projectile||`` +- :mouse pointer: In the new greyed-out container,
+change the second **kind** from ``||sprites:Projectile||``
to ``||sprites:Enemy||``. @@ -177,16 +177,16 @@ At this point, the player is still awarded points when they hit a car. --- -- :mouse pointer: **Delete ** -``||info:change score by [1]||`` -from the -``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Enemy]||`` +- :mouse pointer: **Delete**
+``||info:change score by [1]||``
+from the
+``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Enemy]||``
container. -- :id card: From ``||info: Info||``, grab -``||info:change life by [-1]||`` -and snap it into the end of the -``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Enemy]||`` +- :id card: From ``||info: Info||``, grab
+``||info:change life by [-1]||``
+and snap it into the end of the
+``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Enemy]||``
container. ```blocks diff --git a/docs/skillmap/collector-themed/collectort4.md b/docs/skillmap/collector-themed/collectort4.md index 814916f1325..0f06c2cf065 100644 --- a/docs/skillmap/collector-themed/collectort4.md +++ b/docs/skillmap/collector-themed/collectort4.md @@ -32,12 +32,12 @@ Let's animate Mama Dino! ## {Step 4} -- :chevron down: In the toolbox, click **Advanced** to reveal the +- :chevron down: In the toolbox, click **Advanced** to reveal the
``||animation:Animation||`` category. -- :sync: Drag -``||animation:animate [mySprite]||`` -into **the bottom** of the +- :sync: Drag
+``||animation:animate [mySprite]||``
+into **the bottom** of the
``||loops:on start||`` container. - :mouse pointer: Click the grey toggle at the bottom to switch looping to ``. @@ -83,7 +83,7 @@ true --- -- :paint brush: To select an animation, click the grey box in +- :paint brush: To select an animation, click the grey box in
``||animation:animate [mySprite]||`` and toggle to **My Assets**. - :mouse pointer: Select **Mama Moving** and click **Done**. @@ -109,10 +109,10 @@ true --- -- :mouse pointer: You can make your animation faster by changing the +- :mouse pointer: You can make your animation faster by changing the
**interval** to a lower number. Try using **100** or **200**. -- :mouse pointer: If you'd like to slow your animation down, +- :mouse pointer: If you'd like to slow your animation down,
choose a longer **interval**. @@ -135,7 +135,7 @@ true ## {Step 7} -**Now try your game on the game screen** +**Now try your game on the game screen**
🎮 🎮 🎮 How cool is that?!? @@ -151,8 +151,8 @@ You can follow the same steps to animate the baby. --- - :sync: Drag -``||animation:animate [mySprite]||`` -into the ``||loops:forever||`` loop where your main ``||variables:projectile||`` is created, +``||animation:animate [mySprite]||``
+into the ``||loops:forever||`` loop where your main ``||variables:projectile||`` is created,
and snap it **just above** the ``||loops:pause [1000]||`` block. - :mouse pointer: Change ``||variables:mySprite||`` to ``||variables:projectile||``. @@ -181,7 +181,7 @@ true ## {Step 9} -**Try your project on the game screen!** +**Try your project on the game screen!**
🎮 🎮 🎮 Looking good! @@ -197,7 +197,7 @@ Now you can do the same thing for your enemy sprite! --- - :sync: Drag -``||animation:animate [mySprite]||`` +``||animation:animate [mySprite]||``
into the ``||loops:forever||`` loop where ``||variables:projectile2||`` is created, and snap it **just above** the ``||loops:pause [2100]||`` block. - :mouse pointer: Change ``||variables:mySprite||`` to ``||variables:projectile2||``. diff --git a/docs/skillmap/collector-themed/collectort4old.md b/docs/skillmap/collector-themed/collectort4old.md index fdf38fc3eea..b71368f1ba2 100644 --- a/docs/skillmap/collector-themed/collectort4old.md +++ b/docs/skillmap/collector-themed/collectort4old.md @@ -208,12 +208,12 @@ The code for a collector game is already in the workspace. --- -- :mouse pointer: Right-click on the ``||loops:forever||`` loop container that holds -the code to create **myEnemy** and choose **Duplicate** from the +- :mouse pointer: Right-click on the ``||loops:forever||`` loop container that holds
+the code to create **myEnemy** and choose **Duplicate** from the
top of the menu. -- :mouse pointer: Inside that new loop, click on the ``||variables: myEnemy||`` variable in the -**set projectile to** block. A dropdown will appear, allowing you to +- :mouse pointer: Inside that new loop, click on the ``||variables: myEnemy||`` variable in the
+**set projectile to** block. A dropdown will appear, allowing you to
select **New variable...** . - :mouse pointer: Name your extra life projectile **extraLife**. @@ -253,18 +253,18 @@ forever(function () { **The extra life isn't quite ready.** -Let's make sure to get all the blocks +Let's make sure to get all the blocks
in the new **forever** loop pointed to the right place. --- -- :mouse pointer: Change the variables in both the **set y to** block AND the **set kind to** +- :mouse pointer: Change the variables in both the **set y to** block AND the **set kind to**
block from ``||variables:myEnemy||`` to ``||variables:extraLife||``. -- :mouse pointer: Now change the image for the **extraLife** sprite from a rock to +- :mouse pointer: Now change the image for the **extraLife** sprite from a rock to
something healing...like a heart or a potion. -- :mouse pointer: Extra lives aren't the enemy, they're fuel! In the **set kind to** block, +- :mouse pointer: Extra lives aren't the enemy, they're fuel! In the **set kind to** block,
change **Enemy** to **Food**. @@ -299,14 +299,14 @@ forever(function () { ## {Step 3} -Extra lives are supposed to be special, but they appear just as much +Extra lives are supposed to be special, but they appear just as much
as the other two projectiles right now. **Let's set a longer random pause for extraLife.** --- -- :mouse pointer: Inside the new **extraLife** forever loop, change the +- :mouse pointer: Inside the new **extraLife** forever loop, change the
random **pause** to stay between **4500** and **5500** ms. @@ -345,18 +345,18 @@ forever(function () { **Play through your game once or twice. Notice anything wrong?** -That's right! Nothing happens when you collect an extra life. Let's +That's right! Nothing happens when you collect an extra life. Let's
fix that. --- -- :mouse pointer: Duplicate the **on sprite overlaps Enemy** container that's already in the +- :mouse pointer: Duplicate the **on sprite overlaps Enemy** container that's already in the
workspace. -- :mouse pointer: In the header of the new container, +- :mouse pointer: In the header of the new container,
change the second **kind** from **Enemy** to **Food**. -- :mouse pointer: Change the effect from **fire** to something more appropriate for an +- :mouse pointer: Change the effect from **fire** to something more appropriate for an
extra life. (**Hearts** work well with this theme.) @@ -371,17 +371,17 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSpr ## {Step 6} -The extra life is still **subtracting** a life when collected. +The extra life is still **subtracting** a life when collected.
Let's make it **add** one, instead. --- -- :mouse pointer: Inside the **on sprite overlaps Food** container, -Look for the ``||info:change life by [-1]||`` block +- :mouse pointer: Inside the **on sprite overlaps Food** container,
+Look for the ``||info:change life by [-1]||`` block
and change **-1** to **1**. -- :mouse pointer: To exaggerate this gift even more, open the ``||sprites:Sprites||`` category +- :mouse pointer: To exaggerate this gift even more, open the ``||sprites:Sprites||`` category
and grab a ``||sprites:[mySprite] say [":)"]||`` block. - :mouse pointer: Snap the new block into the **top** of the **on sprite overlaps Food** container. @@ -403,9 +403,9 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSpr ## {Step 7} -- :mouse pointer: The new **mySprite say** block is pointed toward the wrong sprite. To fix that, -drag the ``||variables:otherSprite||`` argument out of the header of the -**on sprite overlaps Food** header and snap it in to replace the +- :mouse pointer: The new **mySprite say** block is pointed toward the wrong sprite. To fix that,
+drag the ``||variables:otherSprite||`` argument out of the header of the
+**on sprite overlaps Food** header and snap it in to replace the
``||variables:mySprite||`` variable. - :mouse pointer: Change the text from **:)** to **+1**. diff --git a/docs/skillmap/collector/collector1.md b/docs/skillmap/collector/collector1.md index ca1ce8431ac..24da5504005 100644 --- a/docs/skillmap/collector/collector1.md +++ b/docs/skillmap/collector/collector1.md @@ -62,15 +62,15 @@ Let's create a game that brings back some of the iconic arcade style that we lov --- -► From the ``||sprites:Sprites||`` category, grab -``||variables:set [mySprite] to sprite [ ] of kind [Player]||`` -and drag it into the empty **on start** container in the workspace. +► From the ``||sprites:Sprites||`` category, grab
+``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
+and drag it into the empty **on start** container in the workspace.
-► Get to the **Gallery** by clicking inside the grey sprite image square +► Get to the **Gallery** by clicking inside the grey sprite image square
and toggling the switch at the top. -► Choose one of our pre-loaded sprite images...or stay in -**Edit** mode to create your own. Click **Done** once you're +► Choose one of our pre-loaded sprite images...or stay in
+**Edit** mode to create your own. Click **Done** once you're
happy with your sprite. @@ -108,14 +108,14 @@ Let's get our sprite moving up and down with the controller. --- -► From the ``||contoller:Controller||`` category, grab a -``||controller:move [mySprite] with buttons ⊕||`` +► From the ``||contoller:Controller||`` category, grab a
+``||controller:move [mySprite] with buttons ⊕||``
block and snap it into the bottom of the **on start** container. -► Click the **⊕** button on the new block to show extra - [__*arguments*__](#argue "extra chunks of information the block needs"). +► Click the **⊕** button on the new block to show extra
+ [__*arguments*__](#argue "extra chunks of information the block needs").
-► To keep the sprite from moving side-to-side, change +► To keep the sprite from moving side-to-side, change
[__*vx*__](#whatVX "horizontal velocity") (velocity on x) to **0**. @@ -155,19 +155,19 @@ Let's toss some coins toward it every couple of seconds...**forever**. --- -► From ``||loops:Loops||`` category, grab a -``||loops:forever||`` loop container and drag it out into +► From ``||loops:Loops||`` category, grab a
+``||loops:forever||`` loop container and drag it out into
an empty spot on the workspace. -► From ``||sprites:Sprites||``, grab -``||variables:set [projectile] to projectile [ ] from side with vx [50] vy [50]||`` +► From ``||sprites:Sprites||``, grab
+``||variables:set [projectile] to projectile [ ] from side with vx [50] vy [50]||``
and snap it into the empty **forever** container. -► Choose a coin sprite for your projectile by clicking on the grey box and toggling +► Choose a coin sprite for your projectile by clicking on the grey box and toggling
to **Gallery** or stay in the **Editor** and create your own. -► To make the projectile fly quickly from right to left, change -[__*vx*__](#whatVX "horizontal velocity") to **-150** +► To make the projectile fly quickly from right to left, change
+[__*vx*__](#whatVX "horizontal velocity") to **-150**
and [__*vy*__](#whatVY "vertical velocity") to **0**. @@ -200,15 +200,15 @@ send projectiles from a random height each time. --- -► From ``||sprites:Sprites||``, grab a -``||sprites:set [mySprite] [x] to [0]||`` +► From ``||sprites:Sprites||``, grab a
+``||sprites:set [mySprite] [x] to [0]||``
block and snap it into the end of the **forever** loop container. ► Change **mySprite** to **projectile** using the first dropdown menu. ► Change **x** to **y** using the other dropdown menu. -► Replace **0** with ``||math:pick random [0] to [10]||``. +► Replace **0** with ``||math:pick random [0] to [10]||``.
(From the ``||math:Math||`` category) @@ -238,14 +238,14 @@ forever(function () { --- -► Help the coins spread out by changing the largest random number from +► Help the coins spread out by changing the largest random number from
**10** to **120**. -► Keep the coins from shooting out at the speed of light by -adding a ``||loops:pause [100] ms||`` block (from the ``||loops:Loops||`` +► Keep the coins from shooting out at the speed of light by
+adding a ``||loops:pause [100] ms||`` block (from the ``||loops:Loops||``
category) to the end of the **forever** loop. -► Change the pause time to **1500 ms** by clicking in the textbox and typing +► Change the pause time to **1500 ms** by clicking in the textbox and typing
**1500** instead of choosing a time from the dropdown menu. ```blocks @@ -281,8 +281,8 @@ Let's change that. --- -► From ``||sprites:Sprites||``, grab an -``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Player]||`` +► From ``||sprites:Sprites||``, grab an
+``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Player]||``
container and drop it into an empty area of the workspace. ► Change the second kind from **Player** to **Projectile**. @@ -299,18 +299,18 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Projectile, function (sprite, ot ## {Step 9} Now we have a container for code that runs when the sprite -overlaps a projectile. +overlaps a projectile.
**Let's add a block to destroy coins as you catch them.** --- -► From ``||sprites:Sprites||``, grab -``||sprites:destroy [mySprite] ⊕||`` and snap it into the empty +► From ``||sprites:Sprites||``, grab
+``||sprites:destroy [mySprite] ⊕||`` and snap it into the empty
**on sprite overlaps** container. -► To make sure that the correct projectile is destroyed, grab the -``||variables:otherSprite||`` argument from the header of the -**on sprite overlaps** container and drop it into the +► To make sure that the correct projectile is destroyed, grab the
+``||variables:otherSprite||`` argument from the header of the
+**on sprite overlaps** container and drop it into the
``||sprites:destroy [mySprite] ⊕||`` block to replace the value **mySprite**. ```blocks @@ -331,8 +331,8 @@ a coin. --- -► From ``||info:Info||``, grab -``||info:change score by [1]||`` and snap it into the bottom of the +► From ``||info:Info||``, grab
+``||info:change score by [1]||`` and snap it into the bottom of the
**on sprite overlaps** container. diff --git a/docs/skillmap/collector/collector1a.md b/docs/skillmap/collector/collector1a.md index f33d6ce82ee..94aba5bb689 100644 --- a/docs/skillmap/collector/collector1a.md +++ b/docs/skillmap/collector/collector1a.md @@ -13,8 +13,8 @@ Let's give your hero a world to protect! --- -► From the ``||scene:Scene||`` category, grab -``||scene:set background image to [ ]||`` block and snap it in to the **top** +► From the ``||scene:Scene||`` category, grab
+``||scene:set background image to [ ]||`` block and snap it in to the **top**
of the **on start** container in the workspace. @@ -151,9 +151,10 @@ scene.setBackgroundImage(img` --- -► Click on the grey square in the ``||scene:set background image to [ ]||`` block to open the **Image Editor**. +► Click on the grey square in the ``||scene:set background image to [ ]||``
+block to open the **Image Editor**. -► Using the **Image Editor**, draw a background image for your game (or select one +► Using the **Image Editor**, draw a background image for your game (or select one
from the **Gallery**). ```block @@ -370,16 +371,16 @@ let mySprite2 = sprites.create(img` --- -► From ``||sprites:Sprites||``, drag ``||sprites:set [mySprite] position to x [0] y [0]||`` +► From ``||sprites:Sprites||``, drag ``||sprites:set [mySprite] position to x [0] y [0]||``
to the **end** of the **on start** container. ► Change **mySprite** to **mySprite2**. -► Change the **x** and **y** values to whatever numbers give you the look that you want +► Change the **x** and **y** values to whatever numbers give you the look that you want
**OR** you can use ``||math: pick random [0] to [10]||`` value blocks to add an element of surprise. --- - **Hint:** Remember that the **x** dimension (horizontal width) runs from 0 to 160 pixels, + **Hint:** Remember that the **x** dimension (horizontal width) runs from 0 to 160 pixels,
while the **y** dimension (vertical height) runs from 0 to 120 pixels. ```block diff --git a/docs/skillmap/collector/collector2.md b/docs/skillmap/collector/collector2.md index d761af36fac..079279de009 100644 --- a/docs/skillmap/collector/collector2.md +++ b/docs/skillmap/collector/collector2.md @@ -204,8 +204,8 @@ forever(function () { ## {Intro @showdialog} -You've made a collector game, now let's add some -special touches to make it even more fun. +You've made a collector game, now let's add some
+special touches to make it even more fun.
![Coin Collecting](/static/skillmap/collector/collector-activity-2.gif "Make it special!" ) @@ -213,15 +213,15 @@ special touches to make it even more fun. ## {Step 1} -The code for a basic collector is already in the workspace, but a few extra +The code for a basic collector is already in the workspace, but a few extra
blocks could make it amazing. --- -► From the ``||scene:Scene||`` category, grab a -``||scene:set background color to [ ]||`` -block and drag it to the **beginning** of the **on start** container. Click the -grey box to choose a color that makes you happy. +► From the ``||scene:Scene||`` category, grab a
+``||scene:set background color to [ ]||``
+block and drag it to the **beginning** of the **on start** container. Click the
+grey box to choose a color that makes you happy.
```blocks @@ -253,14 +253,14 @@ controller.moveSprite(mySprite, 0, 100) ## {Step 2} -**If the game gets wild, our sprite might leave the screen.** +**If the game gets wild, our sprite might leave the screen.**
Let's prevent that. --- -► From the ``||sprites:Sprites||`` category, grab a -``||sprites:set [mySprite] stay in screen ||`` -block and drag it into the **end** of the **on start** container. +► From the ``||sprites:Sprites||`` category, grab a
+``||sprites:set [mySprite] stay in screen ||``
+block and drag it into the **end** of the **on start** container.
```blocks @@ -295,12 +295,12 @@ mySprite.setStayInScreen(true) **🕔 Does this game feel long to you? 🕔** -We haven't added a way to win or lose. +We haven't added a way to win or lose.
Let's do that now by adding a countdown timer. --- -► From ``||info:Info||``, choose the ``||info:start countdown [10] (s)||`` +► From ``||info:Info||``, choose the ``||info:start countdown [10] (s)||``
and snap it into the end of the **on start** container. ► Change **10** to **15** for more playtime goodness. @@ -340,10 +340,10 @@ Right now, when time runs out, you lose the game. We can change that! --- -► From ``||info:Info||``, grab the ``||info:on countdown end||`` -container and drop it into a blank area of the workspace. +► From ``||info:Info||``, grab the ``||info:on countdown end||``
+container and drop it into a blank area of the workspace.
-► Now, from ``||game:Game||``, pick a ``||game:game over ||`` block +► Now, from ``||game:Game||``, pick a ``||game:game over ||`` block
and snap it into the empty **on countdown end** container. ► Toggle **``** to **``**. diff --git a/docs/skillmap/collector/collector3.md b/docs/skillmap/collector/collector3.md index d837d943f46..d50143185fb 100644 --- a/docs/skillmap/collector/collector3.md +++ b/docs/skillmap/collector/collector3.md @@ -150,11 +150,11 @@ Let's start by adding a new kind of projectile. --- -► Right-click on the ``||loops:forever||`` loop container (the one that already holds -the code for your main projectile) and choose **Duplicate** from the +► Right-click on the ``||loops:forever||`` loop container (the one that already holds
+the code for your main projectile) and choose **Duplicate** from the
top of the menu. -► Inside that new loop, click on the ``||variables: projectile||`` variable in the +► Inside that new loop, click on the ``||variables: projectile||`` variable in the
**set projectile to** block. A dropdown will appear, allowing you to select **New variable...** . @@ -232,7 +232,7 @@ fly out at about the same rate. Let's add some variation. ► Inside the first block in the **myEnemy** ``||loops:forever||`` loop, change the **vx** for **myEnemy** to **-110** -► Rocks should also be less frequent than coins. Let's change the +► Rocks should also be less frequent than coins. Let's change the
``||loops:pause (pick random [1000] to [2000])ms||`` to stay between **1500** and **2500** ms. @@ -273,10 +273,10 @@ Let's make sure the code knows the difference between a projectile and myEnemy. --- -► From ``||sprites:Sprites||``, grab a ``||sprites:set [mySprite2] kind to [Player]||`` +► From ``||sprites:Sprites||``, grab a ``||sprites:set [mySprite2] kind to [Player]||``
block and snap it just **ABOVE** the **pause** block in the enemy's **forever** loop container. -► In the new block, change **mySprite2** to **myEnemy** and change **Player** +► In the new block, change **mySprite2** to **myEnemy** and change **Player**
to **Enemy**. @@ -318,14 +318,13 @@ What are we going to do about it? --- -► Duplicate the ``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||`` - container that's already in the -workspace. +► Duplicate the ``||sprites: on [sprite] of kind [Player] overlaps [otherSprite] of kind [Projectile]||``
+container that's already in the workspace. -► In the header of the new container, +► In the header of the new container,
change the second **kind** from **Projectile** to **Enemy**. -► Change the effect from **rings** to something more meaningful for your +► Change the effect from **rings** to something more meaningful for your
enemy. (**Fire** is impressive.) @@ -346,12 +345,11 @@ At this point, the player is still awarded points when they hit a rock. --- -► Delete the ``||info:change score by [1]||`` block from the **on overlaps Enemy** +► Delete the ``||info:change score by [1]||`` block from the **on overlaps Enemy**
container. -► From ``||info: Info||``, grab a ``||info:change life by [-1]||`` block and -snap it into the end of the **on overlaps Enemy** -container. +► From ``||info: Info||``, grab a ``||info:change life by [-1]||`` block and
+snap it into the end of the **on overlaps Enemy** container. diff --git a/docs/skillmap/collector/collector3a.md b/docs/skillmap/collector/collector3a.md index 6941b04d3a6..f9a7aba52fb 100644 --- a/docs/skillmap/collector/collector3a.md +++ b/docs/skillmap/collector/collector3a.md @@ -220,7 +220,7 @@ In this tutorial, we'll add more enemy options. --- -► Find the ``||loops:Forever||`` loop container where your **myEnemy** projectile +► Find the ``||loops:Forever||`` loop container where your **myEnemy** projectile
is created. diff --git a/docs/skillmap/collector/collector4.md b/docs/skillmap/collector/collector4.md index 42b191d61f5..402fda5c1ab 100644 --- a/docs/skillmap/collector/collector4.md +++ b/docs/skillmap/collector/collector4.md @@ -208,12 +208,12 @@ The code for a collector game is already in the workspace. --- -► Right-click on the ``||loops:forever||`` loop container that holds -the code to create **myEnemy** and choose **Duplicate** from the +► Right-click on the ``||loops:forever||`` loop container that holds
+the code to create **myEnemy** and choose **Duplicate** from the
top of the menu. -► Inside that new loop, click on the ``||variables: myEnemy||`` variable in the -**set projectile to** block. A dropdown will appear, allowing you to +► Inside that new loop, click on the ``||variables: myEnemy||`` variable in the
+**set projectile to** block. A dropdown will appear, allowing you to
select **New variable...** . ► Name your extra life projectile **extraLife**. @@ -258,13 +258,13 @@ in the new **forever** loop pointed to the right place. --- -► Change the variables in both the **set y to** block AND the **set kind to** +► Change the variables in both the **set y to** block AND the **set kind to**
block from ``||variables:myEnemy||`` to ``||variables:extraLife||``. -► Now change the image for the **extraLife** sprite from a rock to +► Now change the image for the **extraLife** sprite from a rock to
something healing...like a heart or a potion. -► Extra lives aren't the enemy, they're fuel! In the **set kind to** block, +► Extra lives aren't the enemy, they're fuel! In the **set kind to** block,
change **Enemy** to **Food**. @@ -306,7 +306,7 @@ as the other two projectiles right now. --- -► Inside the new **extraLife** forever loop, change the +► Inside the new **extraLife** forever loop, change the
random **pause** to stay between **4500** and **5500** ms. @@ -350,13 +350,13 @@ fix that. --- -► Duplicate the **on sprite overlaps Enemy** container that's already in the +► Duplicate the **on sprite overlaps Enemy** container that's already in the
workspace. -► In the header of the new container, +► In the header of the new container,
change the second **kind** from **Enemy** to **Food**. -► Change the effect from **fire** to something more appropriate for an +► Change the effect from **fire** to something more appropriate for an
extra life. (**Hearts** work well with this theme.) @@ -377,11 +377,11 @@ Let's make it **add** one, instead. --- -► Inside the **on sprite overlaps Food** container, -Look for the ``||info:change life by [-1]||`` block +► Inside the **on sprite overlaps Food** container,
+Look for the ``||info:change life by [-1]||`` block
and change **-1** to **1**. -► To exaggerate this gift even more, open the ``||sprites:Sprites||`` category +► To exaggerate this gift even more, open the ``||sprites:Sprites||`` category
and grab a ``||sprites:[mySprite] say [":)"]||`` block. ► Snap the new block into the **top** of the **on sprite overlaps Food** container. @@ -403,9 +403,9 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSpr ## {Step 7} -► The new **mySprite say** block is pointed toward the wrong sprite. To fix that, -drag the ``||variables:otherSprite||`` argument out of the header of the -**on sprite overlaps Food** header and snap it in to replace the +► The new **mySprite say** block is pointed toward the wrong sprite. To fix that,
+drag the ``||variables:otherSprite||`` argument out of the header of the
+**on sprite overlaps Food** header and snap it in to replace the
``||variables:mySprite||`` variable. ► Change the text from **:)** to **+1**. diff --git a/docs/skillmap/forest/forest3.md b/docs/skillmap/forest/forest3.md index 2c26d288044..6007232e7c7 100644 --- a/docs/skillmap/forest/forest3.md +++ b/docs/skillmap/forest/forest3.md @@ -185,8 +185,8 @@ When a water sprite hits the fire, the fire needs to decrease in strength by 1. ``||sprites:change strength of [mySprite] by [-1]||``
into **the end** of the **on overlaps** container. -- :mouse pointer: To make sure your code weakens the **Fire** sprite, -grab the ``||variables:otherSprite||`` value block from the +- :mouse pointer: To make sure your code weakens the **Fire** sprite,
+grab the ``||variables:otherSprite||`` value block from the
container and use it to replace ``||variables:mySprite||``. ![Grab the sprite value from the title bar of the outer container](/static/skillmap/assets/sprite-from-container.gif "This is how your block knows which sprite to use") diff --git a/docs/skillmap/forest/forest4.md b/docs/skillmap/forest/forest4.md index 31562bc5333..e9070844bf7 100644 --- a/docs/skillmap/forest/forest4.md +++ b/docs/skillmap/forest/forest4.md @@ -61,9 +61,9 @@ for (let index = 0; index < 4; index++) { ## 4. Wind and Grass -- :circle: On your own, can you find the blocks that set the -**strength of the wind** and the -**dryness of the grass** +- :circle: On your own, can you find the blocks that set the
+**strength of the wind** and the
+**dryness of the grass**
and add them to **the top** of the ``||loops: on start||`` container? _💡 The three variables you just added can all be changed to make your game easier or more difficult!_ @@ -102,7 +102,7 @@ Now that the environment is set, we can add code to make the fires spread. - :circle: Drop an
``||game:on game update||``
-container into an empty area of your workspace to run +container into an empty area of your workspace to run
code each time the game updates its status. - :mouse pointer: From the ``||sprites:Sprites||`` category, grab
diff --git a/docs/skillmap/forest/forest6.md b/docs/skillmap/forest/forest6.md index 303b81d8205..91625081508 100644 --- a/docs/skillmap/forest/forest6.md +++ b/docs/skillmap/forest/forest6.md @@ -128,8 +128,8 @@ It's also helpful to have a sound that lets you know when a new fire has started --- -- :headphones: Find a sound to add when a sprite -of kind ``||sprites:Fire||`` is **created**. +- :headphones: Find a sound to add when a sprite
+of kind ``||sprites:Fire||`` is **created**.
💡 We like the **knock** sound for this. - :question: Can you figure out where to add this block if you want it to play each time a sprite of kind **Fire** is **created**? diff --git a/docs/skillmap/interface/activity1.md b/docs/skillmap/interface/activity1.md index cff5ec3409c..20d09a5d6b1 100644 --- a/docs/skillmap/interface/activity1.md +++ b/docs/skillmap/interface/activity1.md @@ -129,7 +129,7 @@ This block adds a [__*splash screen*__](#splasht "A full-screen message that sho **Let's see how this works** -- :tree: Find the +- :tree: Find the
``||scene:set background color to [ ]||`` block and snap it at the top of the **on start** container already in the workspace. @@ -237,8 +237,8 @@ mySprite.startEffect(effects.spray) --- -- :paper plane: Find a ``||sprites:[mySprite] start [spray] effect ⊕||`` -block and snap it into the ``||controller:on [A] button pressed||`` +- :paper plane: Find a ``||sprites:[mySprite] start [spray] effect ⊕||``
+block and snap it into the ``||controller:on [A] button pressed||``
container...then choose your own effect! - :mouse pointer: Click the **⊕** to the right of the new block to pop open an extra @@ -266,7 +266,7 @@ but they always need another block to snap into. Value blocks look something lik --- -- :calculator: From the ``||math:Math||`` category, grab a ``||math: pick random [0] to [10]||`` +- :calculator: From the ``||math:Math||`` category, grab a ``||math: pick random [0] to [10]||``
value block and snap it into the number field on the effect block. - :mouse pointer: Change the random range to pick between **100** and **600**. diff --git a/docs/skillmap/jungle/jungle1.md b/docs/skillmap/jungle/jungle1.md index 5759751e3d4..ef0e0e7e836 100755 --- a/docs/skillmap/jungle/jungle1.md +++ b/docs/skillmap/jungle/jungle1.md @@ -35,8 +35,8 @@ Our moving characters are called [__*sprites*__](#sprote "2-D images that move o --- -- :paper plane: From the ``||sprites:Sprites||`` category, drag -``||variables:set [mySprite] to sprite [ ] of kind [Player]||`` +- :paper plane: From the ``||sprites:Sprites||`` category, drag
+``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
to **the end** of the ``||loops:on start||`` container. _💡 Having trouble finding the block you need? Look to the left of the instructions for the icon of the toolbox category where your block lives!_ @@ -60,8 +60,8 @@ let mySprite = sprites.create(assets.image`stand`, SpriteKind.Player) --- -- :game: Drag -``||controller:move [mySprite] with buttons ➕||`` +- :game: Drag
+``||controller:move [mySprite] with buttons ➕||``
to **the end** of the ``||loops:on start||`` container. _💡 Remember, the icon to the left of the instructions shows the same icon as the toolbox category for the block you need._ @@ -99,9 +99,9 @@ to "pull down" on the sprite. --- -- :paper plane: Drag -``||sprites:set [mySprite] [x] to [0]||`` -to **the end** of the +- :paper plane: Drag
+``||sprites:set [mySprite] [x] to [0]||``
+to **the end** of the
``||loops:on start||`` container. - :mouse pointer: Click the dropdown to change **x** to **ay (acceleration y)**. @@ -123,9 +123,9 @@ mySprite.ay = 500 --- -- :tree: To keep the monkey in sight, drag -``||scene:camera follow sprite [mySprite]||`` -to **the end** of the +- :tree: To keep the monkey in sight, drag
+``||scene:camera follow sprite [mySprite]||``
+to **the end** of the
``||loops:on start||`` container. ```blocks @@ -152,15 +152,15 @@ Now that the monkey has landed safely, we can make it jump using the **up** arro --- -- :game: Drag the -``||controller:on [A] button [pressed]||`` +- :game: Drag the
+``||controller:on [A] button [pressed]||``
container into an empty area of the workspace. - :mouse pointer: Click the **A** option and change it to **up**. -- :paper plane: Inside of the -``||controller:on [up] button [pressed]||`` -container, add +- :paper plane: Inside of the
+``||controller:on [up] button [pressed]||``
+container, add
``||sprites:make [mySprite] gravity jump||``. ```blocks diff --git a/docs/skillmap/jungle/jungle2.md b/docs/skillmap/jungle/jungle2.md index b4bb53f2b39..862ddae556b 100755 --- a/docs/skillmap/jungle/jungle2.md +++ b/docs/skillmap/jungle/jungle2.md @@ -29,13 +29,13 @@ When the player overlaps a _poison pit_ tile, let's trigger a "GAME OVER" messag --- - :tree: Drag the -``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||`` +``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
container into an empty area of the workspace. - :paint brush: Click the checkerboard image and change it to the **poison pit** tile. -- :circle: Snap a -``||game:game over ||`` +- :circle: Snap a
+``||game:game over ||``
block into the new container. @@ -63,14 +63,14 @@ When your monkey lands on the poison pit, it should end the game as a loss. - :tree: Drag another -``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||`` +``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
container into the workspace. - :paint brush: This time, change the checkerboard to the **chest1** tile. -- :circle: Snap a -``||game:game over ||`` -block into the new container and toggle +- :circle: Snap a
+``||game:game over ||``
+block into the new container and toggle
the **``** switch to **``**! @@ -98,8 +98,8 @@ It's easy to lose...but impossible to win! How do you get over the pits? --- -- :tree: Drag another -``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||`` +- :tree: Drag another
+``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
container into the workspace. - :paint brush: Change the checkerboard to the orange sphere tile called **orange bauble**. @@ -128,14 +128,14 @@ Uh oh! You get WAY too many points when you touch an orange bauble. We can fix --- -- :tree: Drag -``||scene:set [ ] at tilemap col [0] row [0]||`` -into **the top** of the +- :tree: Drag
+``||scene:set [ ] at tilemap col [0] row [0]||``
+into **the top** of the
``||scene:on [sprite] of kind [Player] overlaps [orange bauble] at [location]||`` container. -- :mouse pointer: Replace -``||scene:tilemap col [0] row [0]||`` -with the ``||variables:location||`` +- :mouse pointer: Replace
+``||scene:tilemap col [0] row [0]||``
+with the ``||variables:location||``
value from the top of the **Player overlaps orange bauble** container. ![Share your location](/static/skillmap/jungle/jungle-location.gif "Grab the variable from the overlap container") diff --git a/docs/skillmap/jungle/jungle3.md b/docs/skillmap/jungle/jungle3.md index b40d9d4130d..f4a40f4b8d5 100755 --- a/docs/skillmap/jungle/jungle3.md +++ b/docs/skillmap/jungle/jungle3.md @@ -27,14 +27,14 @@ We need some well-placed platforms! Let's add a crate beneath the player when th --- -- :game: Drag the -``||controller:on [A] button [pressed]||`` +- :game: Drag the
+``||controller:on [A] button [pressed]||``
container into an empty area of the workspace. -- :tree: Set a wall by dragging -``||scene:set wall at tilemap col [0] row [0]||`` -into the empty -``||controller:on [A] button [pressed]||`` +- :tree: Set a wall by dragging
+``||scene:set wall at tilemap col [0] row [0]||``
+into the empty
+``||controller:on [A] button [pressed]||``
container. - :mouse pointer: Toggle `` to ``. @@ -49,16 +49,16 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () { ## 4. Block Walls, Cont. -- :map: Make sure the new wall ends up in the right place by dragging -``||tiles:location [left] of [location]||`` -in to replace +- :map: Make sure the new wall ends up in the right place by dragging
+``||tiles:location [left] of [location]||``
+in to replace
``||scene:tilemap col [0] row [0]||``. - :mouse pointer: Click the word **left** to open the dropdown menu, and change the direction to **bottom**. -- :map: Create the wall **under** your sprite by dragging -``||tiles:location of [mySprite]||`` -in to replace +- :map: Create the wall **under** your sprite by dragging
+``||tiles:location of [mySprite]||``
+in to replace
``||variables:location||``. @@ -88,10 +88,10 @@ The walls are great, but it's hard to remember where they are. Let's add special --- -- :tree: Set a tile by dragging -``||scene:set [ ] at tilemap col [0] row [0]||`` -into **the bottom** of the -``||controller:on [A] button [pressed]||`` +- :tree: Set a tile by dragging
+``||scene:set [ ] at tilemap col [0] row [0]||``
+into **the bottom** of the
+``||controller:on [A] button [pressed]||``
container. - :paint brush: Click the empty square and choose the crate called **bounce**. @@ -110,15 +110,15 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () { ## 7. Adding Block Tiles, Cont. -- :map: Make sure the new tile ends up in the right place by dragging -``||tiles:location [left] of [location]||`` -in to replace +- :map: Make sure the new tile ends up in the right place by dragging
+``||tiles:location [left] of [location]||``
+in to replace
``||scene:tilemap col [0] row [0]||``. - :mouse pointer: Click the word **left** to open the dropdown menu, and change the direction to **bottom**. -- :map: As before, create the tile **under** your sprite by dragging -``||tiles:location of [mySprite]||`` +- :map: As before, create the tile **under** your sprite by dragging
+``||tiles:location of [mySprite]||``
in to replace ``||variables:location||``. diff --git a/docs/skillmap/jungle/jungle4.md b/docs/skillmap/jungle/jungle4.md index 515f0b4dac9..03e5ef16878 100755 --- a/docs/skillmap/jungle/jungle4.md +++ b/docs/skillmap/jungle/jungle4.md @@ -22,14 +22,14 @@ Can you find the bauble that's blocked-in? ## 3. When B Pressed -**Nothing a little dynamite can't fix** -💥💥💥 +**Nothing a little dynamite can't fix**
+💥💥💥
We need to remove some walls and tiles! Let's clear the way when the (B) button is pressed. --- -- :game: Drag the -``||controller:on [A] button [pressed]||`` +- :game: Drag the
+``||controller:on [A] button [pressed]||``
container into an empty area of the workspace. - :mouse pointer: Click the letter A and change it to B. @@ -49,10 +49,10 @@ We're going to use a **Projectile** block here, even though our dynamite stays i --- -- :paper plane: Drag -``||variables:set [projectile] to projectile from [mySprite] with vx [50] vy [50]||`` -into the empty -``||controller:on [B] button [pressed]||`` +- :paper plane: Drag
+``||variables:set [projectile] to projectile from [mySprite] with vx [50] vy [50]||``
+into the empty
+``||controller:on [B] button [pressed]||``
container. - :mouse pointer: Change both **vx** (horizontal speed) and **vy** (vertical speed) to **0** so the explosive stays where you drop it. @@ -75,17 +75,17 @@ For the explosive to overlap the blocks around it, we need it to be able to **go --- -- :paper plane: Drag -``||sprites:set [mySprite] [auto destroy] ||`` -into **the end** of -``||controller:on [B] button [pressed]||`` +- :paper plane: Drag
+``||sprites:set [mySprite] [auto destroy] ||``
+into **the end** of
+``||controller:on [B] button [pressed]||``
container, then toggle **``** to **``**. - :mouse pointer: Click ``||variables:mySprite||`` and change it to ``||variables:projectile||``. -- :mouse pointer: Click -``||sprites:auto destroy||`` -and change it to +- :mouse pointer: Click
+``||sprites:auto destroy||``
+and change it to
``||sprites:ghost through walls||``. @@ -106,9 +106,9 @@ In this step, we'll choose **an animation** for our projectile to make it look l - :chevron down: Click the **Advanced** category in the toolbar to reveal the ``||animation:Animation||`` category. -- :sync: Drag the large -``||animation:animate [mySprite]||`` -block to **the end** of +- :sync: Drag the large
+``||animation:animate [mySprite]||``
+block to **the end** of
``||controller:on [B] button [pressed]||``. - :mouse pointer: Click ``||variables:mySprite||`` and change it to ``||variables:projectile||``. @@ -168,13 +168,13 @@ You should be able to jump with the up arrow, place tiles with the (A) button, a ## 9. Removing Block Tiles -**💥 Kaboom 💥** +**💥 Kaboom 💥**
When your **splode** animation overlaps a platform tile, we need to remove both the wall and the tile. --- -- :tree: Drag the -``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||`` +- :tree: Drag the
+``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
container into an empty area of the workspace. - :mouse pointer: Click ``||sprites:Player||`` and change it to ``||sprites:Projectile||``. @@ -190,15 +190,15 @@ scene.onOverlapTile(SpriteKind.Projectile, assets.tile`skyblock`, function (spri ## 10. Removing Walls -- :tree: Drag -``||scene:set wall at tilemap col [0] row [0]||`` -into the empty -``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||`` +- :tree: Drag
+``||scene:set wall at tilemap col [0] row [0]||``
+into the empty
+``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||``
container. -- :mouse pointer: To remove the wall at the location of overlap, drag the ``||variables:location||`` value block out of the -``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||`` -title and drop it in to replace +- :mouse pointer: To remove the wall at the location of overlap, drag the ``||variables:location||`` value block out of the
+``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||``
+title and drop it in to replace
``||scene:tilemap col [0] row [0]||``. ![Editing our platformer](/static/skillmap/jungle/projectile-wall-off.gif "Time to live dangerously!") @@ -222,14 +222,14 @@ Lastly, we need to remove the tile from the same place that we removed the wall. --- -- :tree: Drag -``||scene:set [ ] at tilemap col [0] row [0]||`` -into **the end** of the -``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||`` +- :tree: Drag
+``||scene:set [ ] at tilemap col [0] row [0]||``
+into **the end** of the
+``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||``
container. -- :mouse pointer: To remove the tile at the location of overlap, drag the ``||variables:location||`` value block out of the -``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||`` title and drop it in to replace +- :mouse pointer: To remove the tile at the location of overlap, drag the ``||variables:location||`` value block out of the
+``||scene:on [sprite] of kind [Projectile] overlaps [skyblock] at [location]||`` title and drop it in to replace
``||scene:tilemap col [0] row [0]||``. diff --git a/docs/skillmap/jungle/jungle5.md b/docs/skillmap/jungle/jungle5.md index 4c1463dbdba..0a9988ccb28 100755 --- a/docs/skillmap/jungle/jungle5.md +++ b/docs/skillmap/jungle/jungle5.md @@ -22,13 +22,13 @@ Can you connect each chunk of code to the actions it creates? ## 3. Fried Monkey? -**💥 STAND BACK 💥** +**💥 STAND BACK 💥**
Make sure to get the monkey out of the way before the big bang! --- -- :paper plane: Drag the -``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Player]||`` +- :paper plane: Drag the
+``||sprites:on [sprite] of kind [Player] overlaps [otherSprite] of kind [Player]||``
container into an empty area of the workspace. - :mouse pointer: Click the second kind ``||sprites:Player||`` and change it to ``||sprites:Projectile||``. @@ -42,8 +42,8 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Projectile, function (sprite, ot ## 4. Remove the Projectile -- :paper plane: Drag -``||sprites:destroy [mySprite]||`` +- :paper plane: Drag
+``||sprites:destroy [mySprite]||``
into the empty **on Projectile overlaps Player** container. - :mouse pointer: Drag the ``||variables:otherSprite||`` value block out of the title bar to replace ``||variables:mySprite||``. @@ -72,8 +72,8 @@ Don't forget to remove HP from the monkey! --- -- :id card: Drag -``||info:change life by [-1]||`` +- :id card: Drag
+``||info:change life by [-1]||``
to **the end** of the **on Projectile overlaps Player** container. @@ -102,7 +102,7 @@ You should be able to jump with the up arrow, place tiles with the (A) button, a ## 7. Remove More Tiles -**💥 Kablow 💥** +**💥 Kablow 💥**
This game could have even more options if we remove **bounce** crates and **poison pit** tiles with explosives, too. --- diff --git a/docs/skillmap/jungle/jungle6.md b/docs/skillmap/jungle/jungle6.md index 361314c1679..83f9a218df7 100755 --- a/docs/skillmap/jungle/jungle6.md +++ b/docs/skillmap/jungle/jungle6.md @@ -22,13 +22,13 @@ Can you connect each chunk of code to the actions it creates? ## 3. Step to the Right -**➡️ Walking to the Right** +**➡️ Walking to the Right**
Let's make our character walk to the right when the right arrow is pressed. --- -- :game: To add code that runs when the player moves to the right, drag -``||controller:on [A] button [pressed]||`` +- :game: To add code that runs when the player moves to the right, drag
+``||controller:on [A] button [pressed]||``
into an empty area of the workspace. - :mouse pointer: Click ``||controller:A||`` and choose ``||controller:right||`` from the dropdown. @@ -44,10 +44,10 @@ controller.right.onEvent(ControllerButtonEvent.Pressed, function () { - :chevron down: Click the **Advanced** category in the toolbar to reveal the ``||animation:Animation||`` category. -- :sync: Drag the large -``||animation:animate [mySprite]||`` -block into the empty -``||controller:on [right] button [pressed]||`` +- :sync: Drag the large
+``||animation:animate [mySprite]||``
+block into the empty
+``||controller:on [right] button [pressed]||``
container. - :paint brush: Click the empty grey box and toggle to **My Assets** to choose the **walk right** animation. @@ -107,13 +107,13 @@ Now we need an animation that runs when the monkey jumps! --- -- :binoculars: Find your -``||controller:on [up] button [pressed]||`` +- :binoculars: Find your
+``||controller:on [up] button [pressed]||``
container that's already in the workspace. -- :sync: Grab an -``||animation:animate [mySprite]||`` -block and drag it into **the end** of the +- :sync: Grab an
+``||animation:animate [mySprite]||``
+block and drag it into **the end** of the
``||controller:on [up] button [pressed]||`` container. diff --git a/docs/skillmap/jungle/jungle7.md b/docs/skillmap/jungle/jungle7.md index 335f3171219..9e8f0609be0 100755 --- a/docs/skillmap/jungle/jungle7.md +++ b/docs/skillmap/jungle/jungle7.md @@ -26,8 +26,8 @@ Can you remember which chunk of code creates each action? --- -- :binoculars: Look for your -``||game:game over ||`` +- :binoculars: Look for your
+``||game:game over ||``
block inside of the **Player overlaps chest1** container. - :mouse pointer: Click the image of **chest1** and change it to **chest2**. @@ -45,8 +45,8 @@ When we get to the first chest, we want to take the player to a new level. --- -- :tree: Drag -``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||`` +- :tree: Drag
+``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
into an empty area of the workspace. - :paint brush: Click the empty square and choose **chest1**. @@ -64,8 +64,8 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo ## 5. Change of Scenery -- :tree: To show the player that the level has changed, drag -``||scene:set background image to [ ]||`` +- :tree: To show the player that the level has changed, drag
+``||scene:set background image to [ ]||``
into the empty **Player overlaps chest1** container. - :paint brush: Click the grey square and toggle to **My Assets** to choose **background2**. @@ -81,8 +81,8 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo ## 6. Change of Location -- :tree: To change the level tilemap, drag -``||scene:set tilemap to [ ]||`` +- :tree: To change the level tilemap, drag
+``||scene:set tilemap to [ ]||``
to **the end** of the **Player overlaps chest1** container. - :paint brush: Click the grey square and toggle to **My Assets** to choose **level2**. @@ -103,12 +103,12 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo --- -- :sync: To carry your character back to the beginning of the level, drag the -``||animation:animate [mySprite] with [fly to center]||`` +- :sync: To carry your character back to the beginning of the level, drag the
+``||animation:animate [mySprite] with [fly to center]||``
block into **the end** of the **Player overlaps chest1** container. -- :paper plane: Drag -``||sprites:[mySprite] say [":)"]||`` +- :paper plane: Drag
+``||sprites:[mySprite] say [":)"]||``
into **the end** of the **Player overlaps chest1** container. - :mouse pointer: Change the text to say **Level 2!** and click the white plus **(+)** to the right of the block so that the text disappears after 500 ms. @@ -140,7 +140,7 @@ Make your way to the treasure chest. You should be transported to a new level! ## Finished -**🥳 Congratulations 🥳** +**🥳 Congratulations 🥳**
You did it!! Can you play your game all the way to the end? --- diff --git a/docs/skillmap/jungle/jungle8.md b/docs/skillmap/jungle/jungle8.md index 340283f3277..fbb09bf7c0f 100755 --- a/docs/skillmap/jungle/jungle8.md +++ b/docs/skillmap/jungle/jungle8.md @@ -23,7 +23,7 @@ How do you feel about the main character? The background? ## 3. A New Location -**Let's change the scene** +**Let's change the scene**
🖼️ 🖼️ 🖼️ From e1e46321c8aa560f2e26626f2b04eebb5270898b Mon Sep 17 00:00:00 2001 From: ganicke Date: Sun, 2 Jan 2022 14:46:07 -0800 Subject: [PATCH 2/2] try to revert the 'projects.md' I didn't see --- docs/projects.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/projects.md b/docs/projects.md index 23f3b6cdbff..e24030b4b05 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -14,6 +14,13 @@ "largeImageUrl": "/static/tutorials/chase-the-pizza.gif", "videoUrl": "/static/tutorials/chase-the-pizza.mp4" }, + { + "name": "Multipart Tutorials", + "url": "/multipart-tutorials", + "imageUrl": "/static/recipes/shark-splash/shark-splash.png", + "largeImageUrl": "/static/recipes/shark-splash/02-C-enemies.gif", + "videoUrl": "/static/recipes/shark-splash/02-C-enemies.mp4" + }, { "name": "Live Coding", "url": "/live-coding", @@ -101,6 +108,7 @@ [Skillmaps](/skillmaps), [Tutorials](/tutorials), +[Multipart Tutorials](/multipart-tutorials), [Live Coding](/live-coding), [Blocks Games](/blocks-games), [JavaScript Games](/javascript-games), @@ -115,4 +123,3 @@ [Hardware](/hardware), [How to Make a Game Videos](/how-to-make-a-game), [John Park's Workshop](/john-parks-workshop) -