pxt-arcade 1.7.3 → 1.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/built/common-sim.d.ts +2 -0
- package/built/common-sim.js +4 -0
- package/built/target.js +1788 -236
- package/built/target.json +1788 -236
- package/built/targetlight.json +5 -5
- package/built/theme.json +3 -2
- package/docs/gamejam/global-2021.html +459 -0
- package/docs/hour-of-code/all.md +27 -0
- package/docs/hour-of-code/{educators.html → educators-2020.html} +25 -25
- package/docs/hour-of-code/educators-2021.html +625 -0
- package/docs/{hour-of-code.html → hour-of-code-2020.html} +37 -37
- package/docs/hour-of-code-2021.html +438 -183
- package/docs/hour-of-code-ref.json +3 -0
- package/docs/index-ref.json +1 -1
- package/docs/multipart-tutorials.md +0 -8
- package/docs/projects/SUMMARY.md +3 -2
- package/docs/recipes.md +0 -7
- package/docs/skillmap/clicker/clicker1.md +7 -7
- package/docs/skillmap/clicker/clicker2.md +9 -9
- package/docs/skillmap/clicker/clicker3.md +8 -8
- package/docs/skillmap/clicker/clicker4.md +8 -8
- package/docs/skillmap/clicker/clicker4a.md +7 -7
- package/docs/skillmap/clicker/clicker5.md +3 -3
- package/docs/skillmap/clicker-themed/clickert1.md +66 -38
- package/docs/skillmap/clicker-themed/clickert2.md +77 -58
- package/docs/skillmap/clicker-themed/clickert3.md +75 -55
- package/docs/skillmap/clicker-themed/clickert4.md +105 -118
- package/docs/skillmap/collector/collector1.md +11 -11
- package/docs/skillmap/collector/collector1a.md +8 -8
- package/docs/skillmap/collector/collector2.md +8 -8
- package/docs/skillmap/collector/collector3.md +8 -8
- package/docs/skillmap/collector/collector3a.md +7 -7
- package/docs/skillmap/collector/collector4.md +8 -8
- package/docs/skillmap/collector/collector5.md +2 -2
- package/docs/skillmap/collector-themed/collectort1.md +107 -88
- package/docs/skillmap/collector-themed/collectort2.md +109 -87
- package/docs/skillmap/collector-themed/collectort3.md +138 -115
- package/docs/skillmap/collector-themed/collectort4.md +130 -118
- package/docs/skillmap/collector-themed/collectort4old.md +23 -23
- package/docs/skillmap/collector-themed/collectort5.md +2 -2
- package/docs/skillmap/educator-info/forest-map-info.md +34 -25
- package/docs/skillmap/educator-info/pongo-map-info.md +55 -0
- package/docs/skillmap/educator-info/racer-map-info.md +105 -0
- package/docs/skillmap/educator-info/rockstar-map-info.md +1 -1
- package/docs/skillmap/educator-info/simple-shark-map-info.md +101 -0
- package/docs/skillmap/forest/forest1.md +1 -69
- package/docs/skillmap/forest/forest2.md +5 -65
- package/docs/skillmap/forest/forest3.md +1 -174
- package/docs/skillmap/forest/forest4.md +2 -336
- package/docs/skillmap/forest/forest5.md +1 -396
- package/docs/skillmap/forest/forest6.md +6 -372
- package/docs/skillmap/forest-old.md +92 -0
- package/docs/skillmap/forest.md +9 -9
- package/docs/skillmap/forest_new/forest1.md +191 -0
- package/docs/skillmap/forest_new/forest2.md +217 -0
- package/docs/skillmap/forest_new/forest3.md +333 -0
- package/docs/skillmap/forest_new/forest4.md +196 -0
- package/docs/skillmap/forest_new/forest5.md +291 -0
- package/docs/skillmap/forest_new/forest6.md +272 -0
- package/docs/skillmap/interface/activity1.md +41 -49
- package/docs/skillmap/jungle/jungle1.md +48 -28
- package/docs/skillmap/jungle/jungle2.md +50 -26
- package/docs/skillmap/jungle/jungle3.md +48 -27
- package/docs/skillmap/jungle/jungle4.md +76 -58
- package/docs/skillmap/jungle/jungle5.md +31 -25
- package/docs/skillmap/jungle/jungle6.md +34 -28
- package/docs/skillmap/jungle/jungle7.md +36 -24
- package/docs/skillmap/jungle/jungle8.md +27 -25
- package/docs/skillmap/jungle.md +7 -3
- package/docs/skillmap/long-shark.md +119 -0
- package/docs/skillmap/pongo/pongo1.md +256 -0
- package/docs/skillmap/pongo/pongo2.md +179 -0
- package/docs/skillmap/pongo/pongo3.md +177 -0
- package/docs/skillmap/pongo.md +59 -0
- package/docs/skillmap/racer.md +7 -7
- package/docs/skillmap/rockstar/rockstar1.md +32 -41
- package/docs/skillmap/rockstar/rockstar2.md +45 -27
- package/docs/skillmap/rockstar/rockstar3.md +45 -27
- package/docs/skillmap/rockstar.md +3 -1
- package/docs/skillmap/shark/shark1-simple.md +151 -0
- package/docs/skillmap/shark/shark2-simple.md +203 -0
- package/docs/skillmap/shark/shark3-simple.md +204 -0
- package/docs/skillmap/shark/shark4-simple.md +246 -0
- package/docs/skillmap/shark/shark4a-simple.md +244 -0
- package/docs/skillmap/shark.md +25 -58
- package/docs/skillmap/space/space1.md +63 -29
- package/docs/skillmap/space/space2.md +34 -25
- package/docs/skillmap/space/space3.md +86 -69
- package/docs/skillmap/space/space4.md +96 -65
- package/docs/skillmap/space/space4a.md +34 -25
- package/docs/skillmap/space/space5.md +81 -45
- package/docs/skillmap/space/space6.md +59 -81
- package/docs/skillmap/space.md +8 -5
- package/docs/skillmap/story/card.md +6 -6
- package/docs/skillmap/story/card2.md +6 -6
- package/docs/skillmap/story/story1.md +60 -175
- package/docs/skillmap/story/story2.md +89 -327
- package/docs/skillmap/story/story3.md +238 -228
- package/docs/skillmap/story/story4.md +23 -23
- package/docs/skillmap/zoo/zoo1.md +31 -16
- package/docs/skillmap/zoo/zoo2.md +45 -30
- package/docs/skillmap/zoo/zoo2a.md +51 -36
- package/docs/skillmap/zoo/zoo3.md +8 -7
- package/docs/skillmap/zoo/zoo4.md +61 -32
- package/docs/skillmap/zoo/zoo5.md +41 -31
- package/docs/skillmap/zoo.md +2 -2
- package/docs/skillmaps.md +20 -4
- package/docs/static/experiments/accessibleblocks.png +0 -0
- package/docs/static/experiments/blockserrorlist.png +0 -0
- package/docs/static/gamejam/jams/global-2021/assets/banner.png +0 -0
- package/docs/static/gamejam/jams/global-2021/info.json +10 -0
- package/docs/static/gamejam/jams/global-2021/rules.md +22 -0
- package/docs/static/gamejam/jams/global-2021/style.css +141 -0
- package/docs/static/gamejam/lib/gamejam.d.ts +1 -0
- package/docs/static/gamejam/lib/gamejam.js +34 -24
- package/docs/static/gamejam/lib/gamejam.ts +35 -24
- package/docs/static/hero-gallery/stream.png +0 -0
- package/docs/static/hour-of-code/{apple.png → 2020/apple.png} +0 -0
- package/docs/static/hour-of-code/{arcade.png → 2020/arcade.png} +0 -0
- package/docs/static/hour-of-code/{asphodel.png → 2020/asphodel.png} +0 -0
- package/docs/static/hour-of-code/{card.png → 2020/card.png} +0 -0
- package/docs/static/hour-of-code/{chase-the-pizza.png → 2020/chase-the-pizza.png} +0 -0
- package/docs/static/hour-of-code/{clovers.png → 2020/clovers.png} +0 -0
- package/docs/static/hour-of-code/{design.png → 2020/design.png} +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/asphodel-level1.png +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/asphodel-level4.png +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/asphodel-level6.png +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/asphodel-level7.png +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/asphodel-level9.png +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/clover-design.gif +0 -0
- package/docs/static/hour-of-code/{educators → 2020/educators}/shark-attack-tutorial.png +0 -0
- package/docs/static/hour-of-code/{galga.png → 2020/galga.png} +0 -0
- package/docs/static/hour-of-code/{lemon-leak.png → 2020/lemon-leak.png} +0 -0
- package/docs/static/hour-of-code/{micro-bit.png → 2020/micro-bit.png} +0 -0
- package/docs/static/hour-of-code/{minecraft.png → 2020/minecraft.png} +0 -0
- package/docs/static/hour-of-code/{nfl.png → 2020/nfl.png} +0 -0
- package/docs/static/hour-of-code/{ocean-jam.png → 2020/ocean-jam.png} +0 -0
- package/docs/static/hour-of-code/{pixel-background-primary.png → 2020/pixel-background-primary.png} +0 -0
- package/docs/static/hour-of-code/{pixel-background-secondary.png → 2020/pixel-background-secondary.png} +0 -0
- package/docs/static/hour-of-code/{shadowed-aside-frame.png → 2020/shadowed-aside-frame.png} +0 -0
- package/docs/static/hour-of-code/{shadowed-button-frame.png → 2020/shadowed-button-frame.png} +0 -0
- package/docs/static/hour-of-code/{shadowed-primary-frame.png → 2020/shadowed-primary-frame.png} +0 -0
- package/docs/static/hour-of-code/{shark-attack.png → 2020/shark-attack.png} +0 -0
- package/docs/static/hour-of-code/{simulator.gif → 2020/simulator.gif} +0 -0
- package/docs/static/hour-of-code/{simulator.png → 2020/simulator.png} +0 -0
- package/docs/static/hour-of-code/{styles.css → 2020/styles.css} +1 -1
- package/docs/static/hour-of-code/2021/Rowdies/OFL.txt +93 -0
- package/docs/static/hour-of-code/2021/Rowdies/Rowdies-Bold.ttf +0 -0
- package/docs/static/hour-of-code/2021/Rowdies/Rowdies-Regular.ttf +0 -0
- package/docs/static/hour-of-code/2021/beginner-skillmap.png +0 -0
- package/docs/static/hour-of-code/2021/favicon.png +0 -0
- package/docs/static/hour-of-code/2021/forest-skillmap-game.gif +0 -0
- package/docs/static/hour-of-code/2021/game-jam-hero.png +0 -0
- package/docs/static/hour-of-code/2021/hoc-2020.png +0 -0
- package/docs/static/hour-of-code/2021/hoc-card.png +0 -0
- package/docs/static/hour-of-code/2021/hoc-header-educators.png +0 -0
- package/docs/static/hour-of-code/2021/hoc-header-plane.gif +0 -0
- package/docs/static/hour-of-code/2021/hoc-header-scene.gif +0 -0
- package/docs/static/hour-of-code/2021/jungle-skillmap.png +0 -0
- package/docs/static/hour-of-code/2021/makecode-example.png +0 -0
- package/docs/static/hour-of-code/2021/microbit.png +0 -0
- package/docs/static/hour-of-code/2021/minecraft.png +0 -0
- package/docs/static/hour-of-code/2021/rockstar-skillmap.png +0 -0
- package/docs/static/hour-of-code/2021/styles.css +660 -62
- package/docs/static/logo.png +0 -0
- package/docs/static/skillmap/assets/my-assets-three.png +0 -0
- package/docs/static/skillmap/assets/sprite-from-container.gif +0 -0
- package/docs/static/skillmap/backgrounds/jungle-bg.png +0 -0
- package/docs/static/skillmap/backgrounds/jungle-map.png +0 -0
- package/docs/static/skillmap/backgrounds/rock-map.png +0 -0
- package/docs/static/skillmap/backgrounds/rockstar-card.gif +0 -0
- package/docs/static/skillmap/backgrounds/space-comp.png +0 -0
- package/docs/static/skillmap/backgrounds/space.png +0 -0
- package/docs/static/skillmap/certificates/forest-cert.pdf +0 -0
- package/docs/static/skillmap/certificates/forest-cert.png +0 -0
- package/docs/static/skillmap/certificates/jungle-cert.pdf +0 -0
- package/docs/static/skillmap/certificates/jungle-cert.png +0 -0
- package/docs/static/skillmap/certificates/rockstar-cert.pdf +0 -0
- package/docs/static/skillmap/certificates/rockstar-cert.png +0 -0
- package/docs/static/skillmap/certificates/shark-cert.pdf +0 -0
- package/docs/static/skillmap/certificates/shark-cert.png +0 -0
- package/docs/static/skillmap/certificates/space-cert.pdf +0 -0
- package/docs/static/skillmap/certificates/space-cert.png +0 -0
- package/docs/static/skillmap/pongo/pongo1.gif +0 -0
- package/docs/static/skillmap/pongo/pongo2gif +0 -0
- package/docs/static/skillmap/pongo/pongo3.gif +0 -0
- package/docs/static/skillmap/racer/racer1.gif +0 -0
- package/docs/static/skillmap/racer/racer2.gif +0 -0
- package/docs/static/skillmap/racer/racer3.gif +0 -0
- package/docs/static/skillmap/rockstar/rockstar1.gif +0 -0
- package/docs/static/skillmap/rockstar/rockstar2.gif +0 -0
- package/docs/static/skillmap/rockstar/rockstar3.gif +0 -0
- package/docs/static/skillmap/shark/shark1-simple.gif +0 -0
- package/docs/static/skillmap/shark/shark4a-simple.gif +0 -0
- package/docs/static/skillmap/zoo/overlaps-food-sprite.gif +0 -0
- package/docs/tutorials/barrel-dodger.md +4 -4
- package/docs/tutorials/collect-the-clovers.md +2 -2
- package/docs/tutorials/froggy.md +105 -90
- package/docs/tutorials/hundred.md +400 -0
- package/package.json +3 -3
- package/pxtarget.json +3 -2
- package/targetconfig.json +4 -1
- package/docs/recipes/wonder-woman-1984/01-maze.md +0 -291
- package/docs/recipes/wonder-woman-1984/02-artifact.md +0 -70
- package/docs/recipes/wonder-woman-1984/03-enemies.md +0 -65
- package/docs/skillmap/forest/forest9.md +0 -714
- package/docs/static/hour-of-code/2021/placeholder.png +0 -0
- package/docs/static/hour-of-code/ww-maze.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/artifact-preview.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/artifacts-location.gif +0 -0
- package/docs/static/recipes/wonder-woman-1984/draw-maze-backup.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/draw-walls-backup.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/end-position.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/enemies-location.gif +0 -0
- package/docs/static/recipes/wonder-woman-1984/enemies-preview.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/fill-maze.gif +0 -0
- package/docs/static/recipes/wonder-woman-1984/fill-walls.gif +0 -0
- package/docs/static/recipes/wonder-woman-1984/wonder-woman3.png +0 -0
- package/docs/static/recipes/wonder-woman-1984/ww-splash3.gif +0 -0
- package/docs/static/recipes/wonder-woman-1984/ww-splash3.mp4 +0 -0
- package/docs/static/ww84-background.png +0 -0
- package/docs/static/ww84-header.png +0 -0
- package/docs/ww84.html +0 -276
- package/sim/public/locales/zh-CN/bundled-strings.json +0 -1800
- package/sim/public/locales/zh-CN/target-strings.json +0 -13
- package/sim/public/locales/zh-TW/bundled-strings.json +0 -1903
- package/sim/public/locales/zh-TW/target-strings.json +0 -8
|
@@ -490,7 +490,7 @@ controller.right.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
490
490
|
|
|
491
491
|
```
|
|
492
492
|
|
|
493
|
-
## Introduction @showdialog
|
|
493
|
+
## {Introduction @showdialog}
|
|
494
494
|
|
|
495
495
|
Short stories are fun to read and fun to write!
|
|
496
496
|
|
|
@@ -500,7 +500,7 @@ share anywhere we like.
|
|
|
500
500
|

|
|
501
501
|
|
|
502
502
|
|
|
503
|
-
## Step 2
|
|
503
|
+
## {Step 2}
|
|
504
504
|
|
|
505
505
|
The base code for a two-line story is already in the workspace.
|
|
506
506
|
Let's build on it to create a new short story worth sharing.
|
|
@@ -516,16 +516,16 @@ Example 3: An alien in the grocery store
|
|
|
516
516
|
```
|
|
517
517
|
|
|
518
518
|
|
|
519
|
-
## Step 3
|
|
519
|
+
## {Step 3}
|
|
520
520
|
|
|
521
521
|
**Now add your setting and main character to the story.**
|
|
522
522
|
|
|
523
523
|
---
|
|
524
524
|
|
|
525
|
-
|
|
525
|
+
- :mouse pointer: Click on the image box in the ``||scene:set background image to []||``
|
|
526
526
|
block and draw your scene.
|
|
527
527
|
|
|
528
|
-
|
|
528
|
+
- :mouse pointer: Click on the image box in the
|
|
529
529
|
``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
|
|
530
530
|
block and design your main character.
|
|
531
531
|
|
|
@@ -781,7 +781,7 @@ mySprite = sprites.create(img`
|
|
|
781
781
|
```
|
|
782
782
|
|
|
783
783
|
|
|
784
|
-
## Step 4
|
|
784
|
+
## {Step 4}
|
|
785
785
|
|
|
786
786
|
**📚 Explain your set-up 📚**
|
|
787
787
|
|
|
@@ -790,11 +790,11 @@ what are they avoiding?
|
|
|
790
790
|
|
|
791
791
|
---
|
|
792
792
|
|
|
793
|
-
|
|
793
|
+
- :mouse pointer: Look for the first ``||game: show long text [" "] [bottom]||`` block inside
|
|
794
794
|
the **on A button pressed** container
|
|
795
795
|
and click in the text area.
|
|
796
796
|
|
|
797
|
-
|
|
797
|
+
- :mouse pointer: Use this space to add your first sentence or two.
|
|
798
798
|
|
|
799
799
|
```block
|
|
800
800
|
let mySprite2: Sprite = null
|
|
@@ -836,7 +836,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
836
836
|
```
|
|
837
837
|
|
|
838
838
|
|
|
839
|
-
## Step 5
|
|
839
|
+
## {Step 5}
|
|
840
840
|
|
|
841
841
|
**🎭 Create some drama 🎭**
|
|
842
842
|
|
|
@@ -844,10 +844,10 @@ What happens now? Something should throw your characters off course or surprise
|
|
|
844
844
|
|
|
845
845
|
---
|
|
846
846
|
|
|
847
|
-
|
|
847
|
+
- :mouse pointer: Look for the second ``||game: show long text [" "] [bottom]||`` block
|
|
848
848
|
and click in the text area.
|
|
849
849
|
|
|
850
|
-
|
|
850
|
+
- :mouse pointer: Use this space to add your drama.
|
|
851
851
|
|
|
852
852
|
```block
|
|
853
853
|
let mySprite2: Sprite = null
|
|
@@ -889,7 +889,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
889
889
|
|
|
890
890
|
|
|
891
891
|
|
|
892
|
-
## Step 6
|
|
892
|
+
## {Step 6}
|
|
893
893
|
|
|
894
894
|
**📕 Show the story 📕**
|
|
895
895
|
|
|
@@ -898,11 +898,11 @@ Let's update the scene and the characters.
|
|
|
898
898
|
|
|
899
899
|
---
|
|
900
900
|
|
|
901
|
-
|
|
901
|
+
- :mouse pointer: Add some code into the ``||controller:on [A] button [pressed]||`` container after the second **show long text** block.
|
|
902
902
|
|
|
903
|
-
|
|
903
|
+
- :mouse pointer: Consider updating **mySprite** with a ``||sprites: set [mySprite] image to [ ]||`` block, adding a second sprite (**mySprite2**), or swapping out the background.
|
|
904
904
|
|
|
905
|
-
|
|
905
|
+
- :mouse pointer: You may also want to change character positions using a couple of
|
|
906
906
|
``||sprites:set [mySprite] position to x [0] y [0]||`` blocks.
|
|
907
907
|
|
|
908
908
|
|
|
@@ -963,7 +963,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
963
963
|
|
|
964
964
|
```
|
|
965
965
|
|
|
966
|
-
## Step 7
|
|
966
|
+
## {Step 7}
|
|
967
967
|
|
|
968
968
|
**😲 The reaction 😲**
|
|
969
969
|
|
|
@@ -972,7 +972,7 @@ How does the main character react?
|
|
|
972
972
|
|
|
973
973
|
---
|
|
974
974
|
|
|
975
|
-
|
|
975
|
+
- :mouse pointer: Add another ``||game:show long text [" "] [bottom]||`` block to the bottom
|
|
976
976
|
of the **on A button pressed** container and add another line
|
|
977
977
|
describing the next thing that happens.
|
|
978
978
|
|
|
@@ -1036,7 +1036,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
1036
1036
|
```
|
|
1037
1037
|
|
|
1038
1038
|
|
|
1039
|
-
## Step 8
|
|
1039
|
+
## {Step 8}
|
|
1040
1040
|
|
|
1041
1041
|
**🌳 Change of scene 🌳**
|
|
1042
1042
|
|
|
@@ -1045,7 +1045,7 @@ on someone's face by drawing a new image? Did the characters move to a new loca
|
|
|
1045
1045
|
|
|
1046
1046
|
---
|
|
1047
1047
|
|
|
1048
|
-
|
|
1048
|
+
- :mouse pointer: Change the background, your sprites, and their positions again to
|
|
1049
1049
|
illustrate the changes happening in the story.
|
|
1050
1050
|
|
|
1051
1051
|
|
|
@@ -1263,7 +1263,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
1263
1263
|
})
|
|
1264
1264
|
```
|
|
1265
1265
|
|
|
1266
|
-
## Step 9
|
|
1266
|
+
## {Step 9}
|
|
1267
1267
|
|
|
1268
1268
|
**🎬 The conclusion 🎬**
|
|
1269
1269
|
|
|
@@ -1272,9 +1272,9 @@ one last time if it helps illustrate your ending.
|
|
|
1272
1272
|
|
|
1273
1273
|
---
|
|
1274
1274
|
|
|
1275
|
-
|
|
1275
|
+
- :mouse pointer: Add another **show long text** block to finish out your story.
|
|
1276
1276
|
|
|
1277
|
-
|
|
1277
|
+
- :mouse pointer: Consider changing the background, **mySprite** (or any other sprite
|
|
1278
1278
|
you added to the story), and their positions to make the ending as satisfying
|
|
1279
1279
|
as possible.
|
|
1280
1280
|
|
|
@@ -1758,7 +1758,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
1758
1758
|
|
|
1759
1759
|
```
|
|
1760
1760
|
|
|
1761
|
-
## finish
|
|
1761
|
+
## {finish}
|
|
1762
1762
|
|
|
1763
1763
|
**And that's it!**
|
|
1764
1764
|
|
|
@@ -11,19 +11,21 @@ No worries,
|
|
|
11
11
|
we'll show you the zookeeper ropes. First things first,
|
|
12
12
|
click that green **OK** button to see the **Keeper's Hut**.
|
|
13
13
|
|
|
14
|
-
## Step 1
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
## 2. Make a Sprite
|
|
16
|
+
|
|
17
|
+
**🏠 Home sweet home 🏠**
|
|
17
18
|
Let's get you set up in your new place!
|
|
18
19
|
|
|
19
20
|
---
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
- :paper plane: From the ``||sprites:Sprites||`` category, drag the
|
|
23
|
+
``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
|
|
22
24
|
block into the ``||loops:on start||`` container.
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
- :paint brush: Click the grey box to open the **image editor** and draw yourself in your best zookeeper outfit!
|
|
25
27
|
|
|
26
|
-
|
|
28
|
+
- :mouse pointer: Click **Next** when you're ready to see the next step.
|
|
27
29
|
|
|
28
30
|
```blocks
|
|
29
31
|
let mySprite = sprites.create(img`
|
|
@@ -46,21 +48,19 @@ let mySprite = sprites.create(img`
|
|
|
46
48
|
`, SpriteKind.Player)
|
|
47
49
|
```
|
|
48
50
|
|
|
49
|
-
##
|
|
51
|
+
## 3. Move Around
|
|
50
52
|
|
|
51
|
-
**🕰 Time to get
|
|
53
|
+
**🕰 Time to get move 🕰**
|
|
52
54
|
|
|
53
55
|
---
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
``||controller:move [mySprite] with buttons ⊕||``
|
|
57
|
+
- :game: From the ``||controller:Controller||`` category, drag
|
|
58
|
+
``||controller:move [mySprite] with buttons ⊕||``
|
|
57
59
|
into the bottom of the ``||loops:on start||`` container.
|
|
58
60
|
|
|
59
61
|
---
|
|
60
62
|
|
|
61
63
|
This will allow you to move your sprite around the screen.
|
|
62
|
-
Try it on the game screen using the arrow keys on your keyboard
|
|
63
|
-
or by clicking the joystick.
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
```blocks
|
|
@@ -86,14 +86,27 @@ let mySprite = sprites.create(img`
|
|
|
86
86
|
controller.moveSprite(mySprite)
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
##
|
|
89
|
+
## 4. Try It
|
|
90
|
+
|
|
91
|
+
**Click the Game Window Tab (Above)**
|
|
92
|
+

|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
Try moving around the game screen! Your zookeeper will move with the joypad or the arrow keys on your keyboard.
|
|
90
97
|
|
|
91
|
-
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
## 5. Look About
|
|
101
|
+
|
|
102
|
+
**Take a look around the room**
|
|
103
|
+
👀
|
|
92
104
|
|
|
93
105
|
---
|
|
94
106
|
|
|
95
|
-
|
|
96
|
-
|
|
107
|
+
- :tree: From the ``||scene:Scene||`` category, drag
|
|
108
|
+
``||scene:camera follow sprite [mySprite]||``
|
|
109
|
+
into the bottom of the ``||loops:on start||`` container and use the arrow keys to
|
|
97
110
|
check out the hut!
|
|
98
111
|
|
|
99
112
|
```blocks
|
|
@@ -120,10 +133,12 @@ controller.moveSprite(mySprite)
|
|
|
120
133
|
scene.cameraFollowSprite(mySprite)
|
|
121
134
|
```
|
|
122
135
|
|
|
123
|
-
##
|
|
136
|
+
## Finale
|
|
124
137
|
|
|
125
138
|
**🐯 Fantastic! 🐯**
|
|
126
139
|
|
|
140
|
+
---
|
|
141
|
+
|
|
127
142
|
You're all ready for your first task.
|
|
128
143
|
|
|
129
144
|
Click on the **Done** button to head out to the **Zoo**!
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
# First Exhibit: By Land
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
##
|
|
4
|
+
## 1. Make an Animal
|
|
5
5
|
|
|
6
|
-
**Your very first exhibit
|
|
6
|
+
**Your very first exhibit!**
|
|
7
|
+
Exciting, huh?
|
|
7
8
|
|
|
8
9
|
Hm... it does look a little empty.
|
|
9
10
|
Well, what's your favorite animal? Let's invite them over!
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
- :paper plane: From the ``||sprites:Sprites||`` category, drag
|
|
15
|
+
``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
|
|
14
16
|
into ``||loops:on start||``.
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
- :paint brush: Click the grey box in the new block and draw your animal using the **image editor**!
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
- :mouse pointer: Click **> Next** when you're ready for the next step.
|
|
19
21
|
|
|
20
22
|
```blocks
|
|
23
|
+
//@highlight
|
|
21
24
|
let mySprite = sprites.create(img`
|
|
22
25
|
. . . . . . 5 5 5 . . . . . . .
|
|
23
26
|
. . . . 5 5 5 5 5 5 5 . . . . .
|
|
@@ -38,19 +41,20 @@ let mySprite = sprites.create(img`
|
|
|
38
41
|
`, SpriteKind.Player)
|
|
39
42
|
```
|
|
40
43
|
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
**🦓 Take your animal for a walk! 🐆**
|
|
44
|
+
## 2. Move Around
|
|
44
45
|
|
|
46
|
+
**Take your animal for a walk!**
|
|
47
|
+
🐆 🦓
|
|
45
48
|
---
|
|
46
49
|
|
|
47
|
-
|
|
48
|
-
``||sprites:set [mySprite] velocity to vx [50] vy [50]||``
|
|
49
|
-
and drag it into the **end** of the ``||loops:on start||`` container.
|
|
50
|
-
should start moving!
|
|
50
|
+
- :paper plane: From ``||sprites:Sprites||``, grab
|
|
51
|
+
``||sprites:set [mySprite] velocity to vx [50] vy [50]||``
|
|
52
|
+
and drag it into the **end** of the ``||loops:on start||`` container.
|
|
51
53
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
Your animal friend should start moving!
|
|
55
|
+
|
|
56
|
+
- :mouse pointer: Try changing the numbers next to **vx** and **vy**
|
|
57
|
+
and watch the game screen to see what happens!
|
|
54
58
|
|
|
55
59
|
```blocks
|
|
56
60
|
let mySprite = sprites.create(img`
|
|
@@ -75,22 +79,22 @@ let mySprite = sprites.create(img`
|
|
|
75
79
|
mySprite.setVelocity(50, 50)
|
|
76
80
|
```
|
|
77
81
|
|
|
78
|
-
##
|
|
82
|
+
## 3. Random Mosey
|
|
79
83
|
|
|
80
84
|
The same old path gets boring after a while.
|
|
81
85
|
**Let's add some randomness!**
|
|
82
86
|
|
|
83
87
|
---
|
|
84
88
|
|
|
85
|
-
|
|
86
|
-
``||math:pick random [0] to [10]||``
|
|
87
|
-
|
|
89
|
+
- :calculator: Go to the ``||math:Math||`` category and grab two
|
|
90
|
+
``||math:pick random [0] to [10]||``
|
|
91
|
+
value blocks.
|
|
88
92
|
|
|
89
|
-
|
|
90
|
-
movement each time you reload!
|
|
93
|
+
- :mouse pointer: Use the two **random** value blocks to replace the numbers next to the **vx** and **vy**.
|
|
91
94
|
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
- :mouse pointer: Change the numbers inside the **random** blocks to see different kinds of movement each time you reload!
|
|
96
|
+
|
|
97
|
+
_💡 Don't forget to try negative numbers!_
|
|
94
98
|
|
|
95
99
|
|
|
96
100
|
```blocks
|
|
@@ -116,18 +120,18 @@ let mySprite = sprites.create(img`
|
|
|
116
120
|
mySprite.setVelocity(randint(-50, 50), randint(-50, 50))
|
|
117
121
|
```
|
|
118
122
|
|
|
119
|
-
##
|
|
123
|
+
## 4. Bounce
|
|
120
124
|
|
|
121
|
-
**When the animal hits the edge of the enclosure
|
|
125
|
+
**When the animal hits the edge of the enclosure it stops moving!**
|
|
122
126
|
|
|
123
127
|
Let's fix that.
|
|
124
128
|
|
|
125
129
|
---
|
|
126
130
|
|
|
127
|
-
|
|
131
|
+
- :paper plane: Open the ``||sprites:Sprites||`` category, then grab
|
|
132
|
+
``||sprites:set [mySprite] bounce on wall <ON>||``
|
|
128
133
|
to snap in at the **end** of the program.
|
|
129
134
|
|
|
130
|
-
---
|
|
131
135
|
|
|
132
136
|
Now your animal can explore the entire exhibit!
|
|
133
137
|
|
|
@@ -156,7 +160,18 @@ mySprite.setVelocity(randint(-50, 50), randint(-50, 50))
|
|
|
156
160
|
mySprite.setBounceOnWall(true)
|
|
157
161
|
```
|
|
158
162
|
|
|
159
|
-
##
|
|
163
|
+
## 5. Try It
|
|
164
|
+
|
|
165
|
+
**Click the Game Window Tab (Above)**
|
|
166
|
+

|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
Watch your animal move around!
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
## 6. Something's Happening @showdialog
|
|
160
175
|
|
|
161
176
|

|
|
162
177
|
|
|
@@ -165,7 +180,7 @@ mySprite.setBounceOnWall(true)
|
|
|
165
180
|
The other kids at the zoo are going to
|
|
166
181
|
love it...WHOA! What's that sound?
|
|
167
182
|
|
|
168
|
-
##
|
|
183
|
+
## 7. WooWoo @showdialog
|
|
169
184
|
|
|
170
185
|

|
|
171
186
|
|
|
@@ -174,10 +189,10 @@ love it...WHOA! What's that sound?
|
|
|
174
189
|
What's going on? Hold on, we're getting a report from the penguin department — the
|
|
175
190
|
penguins did *what*?
|
|
176
191
|
|
|
177
|
-
##
|
|
192
|
+
## Finale
|
|
178
193
|
**🚨 OH NO🚨**
|
|
179
194
|
|
|
180
|
-
You better get over there!
|
|
195
|
+
You better click **Done** and get over there!
|
|
181
196
|
|
|
182
197
|
|
|
183
198
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
# First Exhibit: By Sea
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 1. Welcome
|
|
4
4
|
|
|
5
|
-
**🐙 Welcome to the aquarium! 🐙**
|
|
5
|
+
**🐙 Welcome to the aquarium! 🐙**
|
|
6
6
|
We're so excited to have you designing this exhibit.
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
- :paper plane: To start, go to the ``||sprites:Sprites||`` category and drag
|
|
11
11
|
``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
|
|
12
12
|
into the ``||loops:on start||`` container.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
- :paint brush: Click the grey box and use the **image editor** to
|
|
15
15
|
draw your favorite sea animal.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
- :mouse pointer: Click **Next** when you're ready for the next step.
|
|
18
18
|
|
|
19
19
|
```blocks
|
|
20
20
|
let mySprite = sprites.create(img`
|
|
@@ -37,20 +37,21 @@ let mySprite = sprites.create(img`
|
|
|
37
37
|
`, SpriteKind.Player)
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## 2. Move It
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
**Just keep swimming!**
|
|
43
43
|
|
|
44
44
|
---
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
``||sprites:set [mySprite] [x] to [0]||``
|
|
46
|
+
- :paper plane: In ``||sprites:Sprites||``, find
|
|
47
|
+
``||sprites:set [mySprite] [x] to [0]||``
|
|
48
48
|
and drag it into the **end** of the ``||loops:on start||`` container.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
- :mouse pointer: Click **x** then choose ** vx (velocity x)** from the dropdown menu.
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
- :mouse pointer: Try changing the **0** in the textbox to something else
|
|
53
53
|
*(either positive or negative)*.
|
|
54
|
+
|
|
54
55
|
You should see your fishy friend start to move on the game screen.
|
|
55
56
|
|
|
56
57
|
```blocks
|
|
@@ -76,13 +77,14 @@ let mySprite = sprites.create(img`
|
|
|
76
77
|
mySprite.vx = 50
|
|
77
78
|
```
|
|
78
79
|
|
|
79
|
-
##
|
|
80
|
+
## 3. Bounce
|
|
80
81
|
|
|
81
82
|
**Let's teach our fishy friend to do a flip!**
|
|
82
83
|
|
|
83
84
|
---
|
|
84
85
|
|
|
85
|
-
|
|
86
|
+
- :paper plane: Open ``||sprites:Sprites||``, then snap
|
|
87
|
+
``||sprites:set [mySprite] bounce on wall <ON>||``
|
|
86
88
|
to the end of the program and check out your exhibit on the game screen!
|
|
87
89
|
|
|
88
90
|
```blocks
|
|
@@ -111,16 +113,18 @@ mySprite.setBounceOnWall(true)
|
|
|
111
113
|
```
|
|
112
114
|
|
|
113
115
|
|
|
114
|
-
##
|
|
116
|
+
## 4. Random
|
|
115
117
|
|
|
116
118
|
**Let's make the aquarium more exciting with some** **_randomness_**.
|
|
117
119
|
|
|
118
120
|
---
|
|
119
121
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
+
- :paper plane: Grab a **new**
|
|
123
|
+
``||sprites:set [mySprite] [x] to [0]||``
|
|
124
|
+
block and drag it to the end of the ``||loops:on start||`` container.
|
|
125
|
+
|
|
126
|
+
- :mouse pointer: Replace **x** with **y** using the dropdown menu.
|
|
122
127
|
|
|
123
|
-
► Replace **x** with **y** using the dropdown menu.
|
|
124
128
|
This will change the position of the fish in the up/down direction.
|
|
125
129
|
|
|
126
130
|
|
|
@@ -149,19 +153,19 @@ mySprite.setBounceOnWall(true)
|
|
|
149
153
|
mySprite.y = 0
|
|
150
154
|
```
|
|
151
155
|
|
|
152
|
-
##
|
|
156
|
+
## 5. Replace Values
|
|
153
157
|
|
|
154
|
-
|
|
155
|
-
``||math:pick random [0] to [10]||``
|
|
158
|
+
- :calculator: From the ``||math:Math||`` category, grab a
|
|
159
|
+
``||math:pick random [0] to [10]||``
|
|
160
|
+
value block and
|
|
156
161
|
use it to replace the **0** next to ``||sprites:y||``.
|
|
157
162
|
|
|
158
|
-
|
|
163
|
+
- :mouse pointer: Try replacing **0** and **10** with larger numbers
|
|
159
164
|
to see how they affect your new friend!
|
|
160
165
|
|
|
161
|
-
---
|
|
162
166
|
|
|
163
|
-
|
|
164
|
-
that range will hide your aquatic animal.
|
|
167
|
+
_💡 The screen height only goes from **0** to **120** so numbers outside
|
|
168
|
+
that range will hide your aquatic animal._
|
|
165
169
|
|
|
166
170
|
|
|
167
171
|
```blocks
|
|
@@ -189,19 +193,29 @@ mySprite.setBounceOnWall(true)
|
|
|
189
193
|
mySprite.y = randint(10, 110)
|
|
190
194
|
```
|
|
191
195
|
|
|
196
|
+
## 6. Try It
|
|
197
|
+
|
|
198
|
+
**Click the Game Window Tab (Above)**
|
|
199
|
+

|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
Watch your friend swim!
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
## 7. Add More
|
|
192
208
|
|
|
193
|
-
|
|
194
|
-
**This is awesome...**but it's looking a little lonely in that aquarium.
|
|
195
|
-
Let's give your sea critter a few friends!
|
|
209
|
+
**This is awesome...**but it's looking a little lonely in that aquarium. Let's give your sea critter a few friends!
|
|
196
210
|
|
|
197
211
|
---
|
|
198
212
|
|
|
199
|
-
|
|
200
|
-
``||loops:repeat [4] times||``
|
|
201
|
-
|
|
213
|
+
- :redo: In ``||loops:Loops||``, find the
|
|
214
|
+
``||loops:repeat [4] times||``
|
|
215
|
+
loop container and snap it into the **top** of the
|
|
216
|
+
``||loops:on start||`` container.
|
|
202
217
|
|
|
203
|
-
|
|
204
|
-
chunk of code up into the empty **repeat** container.
|
|
218
|
+
- :mouse pointer: Grab the first block of code beneath the new loop and use it to drag the whole chunk of code up into the empty **repeat** container.
|
|
205
219
|
|
|
206
220
|
```blocks
|
|
207
221
|
//@highlight
|
|
@@ -230,7 +244,7 @@ for (let index = 0; index < 4; index++) {
|
|
|
230
244
|
}
|
|
231
245
|
```
|
|
232
246
|
|
|
233
|
-
##
|
|
247
|
+
## 8. What's Up? @showdialog
|
|
234
248
|
|
|
235
249
|
**🌟 Great work 🌟**
|
|
236
250
|
|
|
@@ -240,7 +254,7 @@ Now it's feeding time, so let's
|
|
|
240
254
|
get over to — **OH NO! What's this?**
|
|
241
255
|
|
|
242
256
|
|
|
243
|
-
##
|
|
257
|
+
## 9. WooWoo @showdialog
|
|
244
258
|
|
|
245
259
|

|
|
246
260
|
|
|
@@ -249,8 +263,9 @@ get over to — **OH NO! What's this?**
|
|
|
249
263
|
What's going on? Hold on, we're getting a report from the penguin department — the
|
|
250
264
|
penguins did *what*?
|
|
251
265
|
|
|
252
|
-
##
|
|
253
|
-
|
|
266
|
+
## Finale
|
|
267
|
+
**You better click "Done" and get over there!**
|
|
268
|
+
🚨 🚨
|
|
254
269
|
|
|
255
270
|
|
|
256
271
|
|
|
@@ -2,25 +2,26 @@
|
|
|
2
2
|
# Penguins!
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 1. Help! @showdialog
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
**Thank goodness, you're here!**
|
|
9
|
+
**Thank goodness, you're here!**
|
|
10
|
+
Penguins are *everywhere*!
|
|
10
11
|
|
|
11
12
|
They're running around outside of their enclosure. You have to help!
|
|
12
13
|
They're eating all the ice cream and sliding down the street!
|
|
13
14
|
|
|
14
|
-
##
|
|
15
|
+
## 2. Troubleshoot
|
|
15
16
|
|
|
16
17
|
Look through the code and figure out how to put the penguins back into their
|
|
17
18
|
icy paradise.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
- :binoculars: Can you figure out how to move the penguin spawn point?
|
|
20
21
|
|
|
21
22
|
---
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
Once you've helped the penguins back into the exhibit click **Done**
|
|
24
25
|
to continue to other parts of the zoo.
|
|
25
26
|
|
|
26
27
|
|
|
@@ -29,8 +30,8 @@ let penguin: Sprite = null
|
|
|
29
30
|
penguin.x = 10
|
|
30
31
|
```
|
|
31
32
|
|
|
32
|
-
Look at this block
|
|
33
|
-
**x=10** put the penguins on the screen?
|
|
33
|
+
☝ Look at this block. What is it doing?
|
|
34
|
+
Where does **x=10** put the penguins on the screen?
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
|