pxt-arcade 1.7.3 → 1.7.4
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/target.js +69 -68
- package/built/target.json +69 -68
- package/built/targetlight.json +4 -4
- package/built/theme.json +2 -1
- package/docs/hour-of-code/educators-2021.html +366 -0
- package/docs/hour-of-code-2021.html +239 -140
- package/docs/hour-of-code.html +11 -11
- 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 +8 -8
- package/docs/skillmap/clicker-themed/clickert2.md +10 -10
- package/docs/skillmap/clicker-themed/clickert3.md +8 -8
- package/docs/skillmap/clicker-themed/clickert4.md +8 -8
- 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 +14 -14
- package/docs/skillmap/collector-themed/collectort2.md +9 -9
- package/docs/skillmap/collector-themed/collectort3.md +11 -11
- package/docs/skillmap/collector-themed/collectort4.md +11 -11
- package/docs/skillmap/collector-themed/collectort4old.md +8 -8
- package/docs/skillmap/collector-themed/collectort5.md +2 -2
- package/docs/skillmap/educator-info/forest-map-info.md +8 -8
- package/docs/skillmap/educator-info/racer-map-info.md +105 -0
- 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 +3 -67
- 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.md +2 -2
- package/docs/skillmap/interface/activity1.md +14 -14
- 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/racer.md +7 -7
- package/docs/skillmap/rockstar/rockstar1.md +32 -13
- package/docs/skillmap/rockstar/rockstar2.md +43 -25
- package/docs/skillmap/rockstar/rockstar3.md +43 -25
- 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 +62 -28
- package/docs/skillmap/space/space2.md +33 -24
- package/docs/skillmap/space/space3.md +85 -68
- package/docs/skillmap/space/space4.md +95 -64
- package/docs/skillmap/space/space4a.md +32 -24
- package/docs/skillmap/space/space5.md +77 -41
- package/docs/skillmap/space/space6.md +56 -78
- 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 +7 -7
- package/docs/skillmap/story/story2.md +11 -11
- package/docs/skillmap/story/story3.md +10 -10
- package/docs/skillmap/story/story4.md +10 -10
- 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/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/global-game-jam.png +0 -0
- package/docs/static/hour-of-code/2021/header.gif +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/microbit.png +0 -0
- package/docs/static/hour-of-code/2021/styles.css +269 -21
- package/docs/static/skillmap/assets/my-assets-three.png +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/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/hundred.md +400 -0
- package/package.json +1 -1
- package/pxtarget.json +2 -1
- 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/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
|
@@ -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
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Feed the Panda
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 1. Feed the Panda
|
|
4
4
|
|
|
5
5
|
**🎋 It's feeding time! 🎋**
|
|
6
6
|
|
|
@@ -9,21 +9,27 @@ write some code to feed it some tasty bamboo.
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
It should look familiar.
|
|
12
|
+
- :binoculars: Take a look at the code in your workspace.
|
|
13
|
+
It should look familiar.
|
|
14
14
|
|
|
15
|
+
Can you remember what each block does?
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
|
|
18
|
+
## 2. Get Bamboo
|
|
17
19
|
|
|
18
20
|
**First, you'll need to grab some bamboo.**
|
|
19
21
|
|
|
20
22
|
---
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
- :game: From ``||controller:Controller||``, drag an
|
|
25
|
+
``||controller:on [A] button pressed ||``
|
|
26
|
+
container into the workspace.
|
|
23
27
|
|
|
24
|
-
|
|
28
|
+
- :paper plane: Snap a new
|
|
29
|
+
``||variables:set [mySprite] to sprite [ ] of kind [Player]||``
|
|
30
|
+
block inside it.
|
|
25
31
|
|
|
26
|
-
|
|
32
|
+
- :mouse pointer: Make sure to change the kind to ``||sprites:Food||``, then click on
|
|
27
33
|
the grey square and draw a delicious piece of bamboo in the **image editor**.
|
|
28
34
|
|
|
29
35
|
```blocks
|
|
@@ -50,7 +56,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
50
56
|
```
|
|
51
57
|
|
|
52
58
|
|
|
53
|
-
##
|
|
59
|
+
## 3. Try It! @showdialog
|
|
54
60
|
|
|
55
61
|
**Press the Ⓐ button**
|
|
56
62
|
|
|
@@ -59,19 +65,23 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
59
65
|
Look at your game screen to see what happens.
|
|
60
66
|
|
|
61
67
|
|
|
62
|
-
##
|
|
68
|
+
## 4. Random Bamboo
|
|
63
69
|
|
|
64
70
|
**Time to scatter the bamboo around the panda enclosure!**
|
|
65
71
|
|
|
66
72
|
---
|
|
67
73
|
|
|
68
|
-
|
|
69
|
-
|
|
74
|
+
- :paper plane: From ``||sprites:Sprites||``, get a
|
|
75
|
+
``||sprites:set [mySprite] position to x [0] y [0]||``
|
|
76
|
+
block and place it at the **end** of the
|
|
77
|
+
``||controller:on [A] button pressed ||``
|
|
78
|
+
container.
|
|
70
79
|
|
|
71
|
-
|
|
72
|
-
|
|
80
|
+
- :calculator: From ``||math:Math||``, grab two
|
|
81
|
+
``||math:pick random [0] to [10]||``
|
|
82
|
+
value blocks and use them to replace the **x** and **y** values in the new **set position** block.
|
|
73
83
|
|
|
74
|
-
|
|
84
|
+
- :mouse pointer: Try some different numbers to see how they affect the way the bamboo is **randomly** placed on the screen.
|
|
75
85
|
|
|
76
86
|
|
|
77
87
|
```blocks
|
|
@@ -100,23 +110,23 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
100
110
|
```
|
|
101
111
|
|
|
102
112
|
|
|
103
|
-
##
|
|
113
|
+
## 5. Panda Food
|
|
104
114
|
|
|
105
115
|
**Press the Ⓐ button (or click the space bar)** to place food for the panda.
|
|
106
116
|
|
|
107
117
|
|
|
108
|
-
##
|
|
118
|
+
## 6. Help the Panda
|
|
109
119
|
|
|
110
120
|
**Aw, the panda isn't very good at finding the food...let's help it out!**
|
|
111
121
|
|
|
112
122
|
---
|
|
113
123
|
|
|
114
|
-
|
|
115
|
-
``||sprites:set [myEnemy] follow [mySprite]||``
|
|
124
|
+
- :paper plane: Open ``||sprites:Sprites||`` and drag a
|
|
125
|
+
``||sprites:set [myEnemy] follow [mySprite]||``
|
|
126
|
+
block out into the **end**
|
|
116
127
|
of the ``||controller:on A button pressed||`` container.
|
|
117
128
|
|
|
118
|
-
|
|
119
|
-
on the game screen.
|
|
129
|
+
- :mouse pointer: Change the first variable value to ``||variables:panda||``, then try your code on the game screen.
|
|
120
130
|
|
|
121
131
|
```blocks
|
|
122
132
|
let panda:Sprite = null;
|
|
@@ -145,7 +155,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
145
155
|
})
|
|
146
156
|
```
|
|
147
157
|
|
|
148
|
-
##
|
|
158
|
+
## 7. Good Eats
|
|
149
159
|
|
|
150
160
|
**😋 Munch time 😋**
|
|
151
161
|
|
|
@@ -154,10 +164,11 @@ panda **overlaps** the bamboo.
|
|
|
154
164
|
|
|
155
165
|
---
|
|
156
166
|
|
|
157
|
-
|
|
167
|
+
- :paper plane: From ``||sprites:Sprites||``, pull out an
|
|
168
|
+
``||sprites:on [sprite] of kind [Player] overlaps [othersprite] of kind [Player]||``
|
|
158
169
|
container and drop it in the workspace.
|
|
159
170
|
|
|
160
|
-
|
|
171
|
+
- :mouse pointer: Click on the second ``||sprites:Player||`` dropdown menu
|
|
161
172
|
and select **Food**.
|
|
162
173
|
|
|
163
174
|
```blocks
|
|
@@ -166,17 +177,34 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSpr
|
|
|
166
177
|
})
|
|
167
178
|
```
|
|
168
179
|
|
|
169
|
-
##
|
|
180
|
+
## 8. Destroy the Sprite
|
|
170
181
|
|
|
171
|
-
|
|
182
|
+
- :paper plane: Next, grab a
|
|
183
|
+
``||sprites:destroy [mySprite] ⊕||``
|
|
184
|
+
block from ``||sprites:Sprites||``
|
|
172
185
|
and put it in the **on overlaps** container.
|
|
173
186
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
187
|
+
- :mouse pointer: Grab ``||variables:otherSprite||`` from the title of the **overlaps** container and drag it down to replace ``||variables:mySprite||`` in the **destroy** block.
|
|
188
|
+
|
|
189
|
+

|
|
190
|
+
|
|
191
|
+
```blocks
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSprite) {
|
|
195
|
+
//@highlight
|
|
196
|
+
otherSprite.destroy()
|
|
197
|
+
})
|
|
198
|
+
```
|
|
199
|
+
|
|
177
200
|
|
|
178
|
-
|
|
179
|
-
|
|
201
|
+
## 9. Special Effects
|
|
202
|
+
|
|
203
|
+
- :mouse pointer: Press the plus icon on the
|
|
204
|
+
``||sprites:destroy [otherSprite] ⊕||``
|
|
205
|
+
block to add an effect that will play when the panda starts munching.
|
|
206
|
+
|
|
207
|
+
_💡 Both **spray** and **disintegrate** work well here!_
|
|
180
208
|
|
|
181
209
|
|
|
182
210
|
|
|
@@ -189,13 +217,14 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSpr
|
|
|
189
217
|
})
|
|
190
218
|
```
|
|
191
219
|
|
|
192
|
-
|
|
220
|
+
|
|
221
|
+
## 10. Full Panda
|
|
193
222
|
|
|
194
223
|
**Way to go!**
|
|
195
224
|
|
|
196
225
|
That panda's getting a full meal!
|
|
197
226
|
|
|
198
|
-
Give your game a try using the game screen, and when you're
|
|
227
|
+
Give your game a try using the game screen, and when you're finished,
|
|
199
228
|
click **Done** to continue your zoo journey.
|
|
200
229
|
|
|
201
230
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Quail Hatching
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## So Many Quail! @showdialog
|
|
4
4
|
|
|
5
5
|
It's quail hatching season! The quail are laying eggs left
|
|
6
6
|
and right.
|
|
@@ -8,29 +8,34 @@ and right.
|
|
|
8
8
|
Let's catch them and put them back into the
|
|
9
9
|
quail coop.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
## 2. Look for the Glove
|
|
12
13
|
|
|
13
14
|
First, look at the code in the workspace.
|
|
14
15
|
|
|
15
16
|
---
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
- :binoculars: Can you find where the quail-catching glove is created
|
|
18
19
|
and where the controller buttons are enabled?
|
|
19
20
|
|
|
20
21
|
---
|
|
21
22
|
|
|
22
|
-
At the moment, the glove doesn't do anything when it overlaps quail.
|
|
23
|
+
At the moment, the glove doesn't do anything when it overlaps quail.
|
|
24
|
+
|
|
25
|
+
We should fix that.
|
|
26
|
+
|
|
23
27
|
|
|
24
|
-
##
|
|
28
|
+
## 3. Overlap
|
|
25
29
|
|
|
26
30
|
**Let's catch some birds!**
|
|
27
31
|
|
|
28
32
|
---
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
- :paper plane: From ``||sprites:Sprites||``, drag an
|
|
35
|
+
``||sprites:on [sprite] of kind [Player] overlaps [othersprite] of kind [Player]||``
|
|
31
36
|
container into the workspace.
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
- :mouse pointer: Click the **second** ``||sprites:Player||`` dropdown and
|
|
34
39
|
change it to ``||sprites:Quail||``.
|
|
35
40
|
|
|
36
41
|
|
|
@@ -43,16 +48,17 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Quail, function (sprite, otherSp
|
|
|
43
48
|
})
|
|
44
49
|
```
|
|
45
50
|
|
|
46
|
-
##
|
|
51
|
+
## 4. Follow the Glove
|
|
47
52
|
|
|
48
|
-
**✋ Once you catch a quail, it should stay in your hand
|
|
53
|
+
**✋ Once you catch a quail, it should stay in your hand**
|
|
49
54
|
|
|
50
55
|
---
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
- :paper plane: Also from ``||sprites:Sprites||``, grab
|
|
58
|
+
``||sprites:set [myEnemy] follow [mySprite] ||``
|
|
59
|
+
and drag it into the empty **overlaps** container.
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
- :mouse pointer: Grab the ``||variables:otherSprite||`` value block out of the title of the outer container and
|
|
56
62
|
drag it down to replace the ``||variables:myEnemy||`` argument in the **set follow** block.
|
|
57
63
|
|
|
58
64
|
|
|
@@ -68,24 +74,27 @@ sprites.onOverlap(SpriteKind.Player, SpriteKind.Quail, function (sprite, otherSp
|
|
|
68
74
|
})
|
|
69
75
|
```
|
|
70
76
|
|
|
71
|
-
##
|
|
77
|
+
## 5. Try It
|
|
72
78
|
|
|
73
|
-
**Give the game a try in the
|
|
79
|
+
**Give the game a try in the game window.**
|
|
74
80
|
|
|
75
|
-
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
What's happening?
|
|
76
84
|
What's not happening?
|
|
77
85
|
|
|
78
86
|
|
|
79
|
-
##
|
|
87
|
+
## 6. Put It Away
|
|
80
88
|
|
|
81
89
|
**We need to put the quail back into the coop.**
|
|
82
90
|
|
|
83
91
|
---
|
|
84
92
|
|
|
85
|
-
|
|
86
|
-
``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
|
|
93
|
+
- :tree: From ``||scene:Scene||``, drag an
|
|
94
|
+
``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
|
|
95
|
+
container into the workspace.
|
|
87
96
|
|
|
88
|
-
|
|
97
|
+
- :mouse pointer: Change **Player** to **Quail**, and change the empty tile to the **coop** tile.
|
|
89
98
|
|
|
90
99
|
```blocks
|
|
91
100
|
namespace SpriteKind {
|
|
@@ -97,12 +106,13 @@ scene.onOverlapTile(SpriteKind.Quail, assets.tile`myTile`, function (sprite, loc
|
|
|
97
106
|
```
|
|
98
107
|
|
|
99
108
|
|
|
100
|
-
##
|
|
109
|
+
## 7. Destroy
|
|
101
110
|
|
|
102
|
-
|
|
103
|
-
|
|
111
|
+
- :paper plane: From ``||sprites:Sprites||``, snap a
|
|
112
|
+
``||sprites:destroy [mySprite]||``
|
|
113
|
+
block into the empty overlaps container.
|
|
104
114
|
|
|
105
|
-
|
|
115
|
+
- :mouse pointer: Grab the ``||variables:sprite||`` value block from the
|
|
106
116
|
**overlaps** container and drag it down to replace the
|
|
107
117
|
``||variables:mySprite||`` argument in the **destroy** block.
|
|
108
118
|
|
|
@@ -120,25 +130,25 @@ scene.onOverlapTile(SpriteKind.Quail, assets.tile`myTile`, function (sprite, loc
|
|
|
120
130
|
})
|
|
121
131
|
```
|
|
122
132
|
|
|
123
|
-
##
|
|
133
|
+
## 8. Gather the Eggs
|
|
124
134
|
|
|
125
135
|
**Now you have to deal with the pesky leftover quail eggs**
|
|
126
136
|
|
|
127
137
|
---
|
|
128
138
|
|
|
129
|
-
|
|
130
|
-
``||sprites:on [sprite] of kind [Player] overlaps [othersprite] of kind [Quail]||``
|
|
139
|
+
- :mouse pointer: Right-click on your
|
|
140
|
+
``||sprites:on [sprite] of kind [Player] overlaps [othersprite] of kind [Quail]||``
|
|
131
141
|
container and select **Duplicate** from the dropdown menu. Then change the second
|
|
132
142
|
argument from **Quail** to **Egg**.
|
|
133
143
|
|
|
134
|
-
|
|
135
|
-
``||scene:on [sprite] of kind [Quail] overlaps [coop] at [location]||``
|
|
144
|
+
- :mouse pointer: Right-click on your
|
|
145
|
+
``||scene:on [sprite] of kind [Quail] overlaps [coop] at [location]||``
|
|
136
146
|
container and select **Duplicate** from the dropdown menu.
|
|
137
147
|
Then change the kind from **Quail** to **Egg**.
|
|
138
148
|
|
|
139
149
|
---
|
|
140
150
|
|
|
141
|
-
|
|
151
|
+
Look at the game window to see how fast you can clear out the quail!
|
|
142
152
|
|
|
143
153
|
```blocks
|
|
144
154
|
namespace SpriteKind {
|
|
@@ -154,13 +164,13 @@ scene.onOverlapTile(SpriteKind.Egg, assets.tile`myTile`, function (sprite, locat
|
|
|
154
164
|
```
|
|
155
165
|
|
|
156
166
|
|
|
157
|
-
##
|
|
167
|
+
## 9. Finale
|
|
158
168
|
|
|
159
169
|
**Now play your game!**
|
|
160
170
|
|
|
161
171
|
Can you clear all of the eggs before they hatch into more quail?
|
|
162
172
|
|
|
163
|
-
Once you're
|
|
173
|
+
Once you're finished playing, click **Done** to go back to the map where you can share
|
|
164
174
|
this game with family and friends!
|
|
165
175
|
|
|
166
176
|
|
package/docs/skillmap/zoo.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# A Zookeeper's Adventure!
|
|
2
2
|
* name: A Zookeeper's Adventure!
|
|
3
3
|
* description: Ever wonder what it takes to be a zookeeper? The answer may surprise you...
|
|
4
4
|
* infoUrl: skillmap/educator-info/zookeeper-map-info
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* url: /skillmap/zoo/zoo2a
|
|
43
43
|
* imageurl: /static/skillmap/zoo/zoo2a.gif
|
|
44
44
|
* tags: easy, movement, random
|
|
45
|
-
* next: zoo-
|
|
45
|
+
* next: zoo-activity3
|
|
46
46
|
|
|
47
47
|
### zoo-activity3
|
|
48
48
|
* allowcodecarryover: false
|
package/docs/skillmaps.md
CHANGED
|
@@ -16,11 +16,27 @@
|
|
|
16
16
|
"directOpen": true
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"name": "
|
|
19
|
+
"name": "Create a Space Adventure",
|
|
20
20
|
"cardType": "link",
|
|
21
|
-
"description": "
|
|
22
|
-
"imageUrl": "/static/skillmap/backgrounds/
|
|
23
|
-
"url": "https://arcade.makecode.com/--skillmap#
|
|
21
|
+
"description": "Make a Galaga-style game by creating a rocket that fires at enemies. Design your outerspace view, create amazing animations, and MORE!",
|
|
22
|
+
"imageUrl": "/static/skillmap/backgrounds/space.png",
|
|
23
|
+
"url": "https://arcade.makecode.com/--skillmap#space",
|
|
24
|
+
"directOpen": true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "Jungle Monkey Jump Platformer",
|
|
28
|
+
"cardType": "link",
|
|
29
|
+
"description": "Code your monkey, add magic platforms, toss explosives, and collect valuables through customizable level maps.",
|
|
30
|
+
"imageUrl": "/static/skillmap/backgrounds/jungle-map.png",
|
|
31
|
+
"url": "https://arcade.makecode.com/--skillmap#jungle",
|
|
32
|
+
"directOpen": true
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "80s Rockstar Maze",
|
|
36
|
+
"cardType": "link",
|
|
37
|
+
"description": "Code your rockstar to move through the crowded backstage area to collect all the gear before they're mobbed by fans!",
|
|
38
|
+
"imageUrl": "/static/skillmap/backgrounds/rockstar-card.gif",
|
|
39
|
+
"url": "https://arcade.makecode.com/--skillmap#rockstar",
|
|
24
40
|
"directOpen": true
|
|
25
41
|
},
|
|
26
42
|
{
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|