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
|
@@ -156,7 +156,7 @@ forever(function () {
|
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
|
|
159
|
-
## Intro @showdialog
|
|
159
|
+
## {Intro @showdialog}
|
|
160
160
|
|
|
161
161
|
Are you ready to make greeting cards for your friends and family?
|
|
162
162
|
|
|
@@ -166,7 +166,7 @@ Follow these quick steps and you'll have one in no time!
|
|
|
166
166
|
|
|
167
167
|
|
|
168
168
|
|
|
169
|
-
## Step 2
|
|
169
|
+
## {Step 2}
|
|
170
170
|
|
|
171
171
|
**🎨 This card centers around an artistic background 🎨**
|
|
172
172
|
|
|
@@ -313,7 +313,7 @@ scene.setBackgroundImage(img`
|
|
|
313
313
|
|
|
314
314
|
|
|
315
315
|
|
|
316
|
-
## Step 3
|
|
316
|
+
## {Step 3}
|
|
317
317
|
|
|
318
318
|
**💛 Let's add a heartfelt greeting 💛**
|
|
319
319
|
|
|
@@ -451,7 +451,7 @@ scene.setBackgroundImage(img`
|
|
|
451
451
|
|
|
452
452
|
|
|
453
453
|
|
|
454
|
-
## Step 4
|
|
454
|
+
## {Step 4}
|
|
455
455
|
|
|
456
456
|
**🎉 Time for a celebration 🎉**
|
|
457
457
|
|
|
@@ -590,7 +590,7 @@ effects.confetti.startScreenEffect()
|
|
|
590
590
|
```
|
|
591
591
|
|
|
592
592
|
|
|
593
|
-
## Step 5
|
|
593
|
+
## {Step 5}
|
|
594
594
|
|
|
595
595
|
**🎵 Let's add a personal note 🎵 **
|
|
596
596
|
|
|
@@ -738,7 +738,7 @@ music.playMelody("G B A G C5 B A B ", 120)
|
|
|
738
738
|
|
|
739
739
|
|
|
740
740
|
|
|
741
|
-
## Congrats @showdialog
|
|
741
|
+
## {Congrats @showdialog}
|
|
742
742
|
|
|
743
743
|
**🥳 That's it! 🥳**
|
|
744
744
|
|
|
@@ -747,7 +747,7 @@ You now have a basic greeting card!
|
|
|
747
747
|
**Take a look at the game screen to see how it turned out!**
|
|
748
748
|
|
|
749
749
|
|
|
750
|
-
## Finish
|
|
750
|
+
## {Finish}
|
|
751
751
|
|
|
752
752
|
**Congratulations, you've finished your greeting card! **
|
|
753
753
|
|
|
@@ -289,13 +289,13 @@ forever(function () {
|
|
|
289
289
|
```
|
|
290
290
|
|
|
291
291
|
|
|
292
|
-
## Introduction @showdialog
|
|
292
|
+
## {Introduction @showdialog}
|
|
293
293
|
|
|
294
294
|
You've created a greeting, now let's send it over the top!
|
|
295
295
|
|
|
296
296
|

|
|
297
297
|
|
|
298
|
-
## Step 2
|
|
298
|
+
## {Step 2}
|
|
299
299
|
|
|
300
300
|
The code for a simple greeting card is already in the workspace.
|
|
301
301
|
**⭐ Build a new card by editing the images ⭐**
|
|
@@ -444,7 +444,7 @@ music.playMelody("G B A G C5 B A B", 120)
|
|
|
444
444
|

|
|
445
445
|
|
|
446
446
|
|
|
447
|
-
## Step 3
|
|
447
|
+
## {Step 3}
|
|
448
448
|
|
|
449
449
|
**🎹 Cue the music 🎹**
|
|
450
450
|
|
|
@@ -593,7 +593,7 @@ music.playMelody("G B A G C5 B A B ", 120)
|
|
|
593
593
|
|
|
594
594
|
|
|
595
595
|
|
|
596
|
-
## Step 4
|
|
596
|
+
## {Step 4}
|
|
597
597
|
|
|
598
598
|
You can make your card even more special by adding some text that
|
|
599
599
|
cycles through when the **Ⓐ** button is pressed.
|
|
@@ -617,7 +617,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
617
617
|
|
|
618
618
|
```
|
|
619
619
|
|
|
620
|
-
## Step 5
|
|
620
|
+
## {Step 5}
|
|
621
621
|
|
|
622
622
|
👀 Now take a look at your card on the game screen 👀
|
|
623
623
|
|
|
@@ -625,7 +625,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
625
625
|
|
|
626
626
|
|
|
627
627
|
|
|
628
|
-
## Step 6
|
|
628
|
+
## {Step 6}
|
|
629
629
|
|
|
630
630
|
**💚 What a nice surprise 💚 **
|
|
631
631
|
Add a second message below the first to really show you care.
|
|
@@ -649,7 +649,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
649
649
|
```
|
|
650
650
|
|
|
651
651
|
|
|
652
|
-
## Step 7
|
|
652
|
+
## {Step 7}
|
|
653
653
|
|
|
654
654
|
**🎨 Make it POP 🎨**
|
|
655
655
|
Customize the dialog to bring it all together.
|
|
@@ -708,14 +708,14 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
708
708
|
```
|
|
709
709
|
|
|
710
710
|
|
|
711
|
-
## Step 8
|
|
711
|
+
## {Step 8}
|
|
712
712
|
|
|
713
713
|
😍 Take a look at your card on the game screen 😍
|
|
714
714
|
|
|
715
715
|
**Press the Ⓐ button to cycle through your messages.**
|
|
716
716
|
|
|
717
717
|
|
|
718
|
-
## Step 9
|
|
718
|
+
## {Step 9}
|
|
719
719
|
|
|
720
720
|
**🎀 The final touch 🎀**
|
|
721
721
|
Change the color of your text so it works with your new background.
|
|
@@ -775,7 +775,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
775
775
|
```
|
|
776
776
|
|
|
777
777
|
|
|
778
|
-
## Congrats @showdialog
|
|
778
|
+
## {Congrats @showdialog}
|
|
779
779
|
|
|
780
780
|
🥳 That's it! 🥳
|
|
781
781
|
|
|
@@ -784,7 +784,7 @@ to see how it works!**
|
|
|
784
784
|
|
|
785
785
|
|
|
786
786
|
|
|
787
|
-
## Finale
|
|
787
|
+
## {Finale}
|
|
788
788
|
|
|
789
789
|
**🎊 Congrats 🎊**
|
|
790
790
|
|
|
@@ -198,7 +198,7 @@ forever(function () {
|
|
|
198
198
|
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
-
## Introduction @showdialog
|
|
201
|
+
## {Introduction @showdialog}
|
|
202
202
|
|
|
203
203
|
Everyone loves a good joke.
|
|
204
204
|
Let's build one we can share with friends.
|
|
@@ -209,7 +209,7 @@ add style.
|
|
|
209
209
|
|
|
210
210
|

|
|
211
211
|
|
|
212
|
-
## Step 2
|
|
212
|
+
## {Step 2}
|
|
213
213
|
|
|
214
214
|
To prepare for the next steps,
|
|
215
215
|
[__*click here to choose a joke from our list*__](#doc:/skillmap/story/joke-examples "Find a good two line joke here."),
|
|
@@ -222,7 +222,7 @@ A: Because pepper makes them sneeze!
|
|
|
222
222
|
```
|
|
223
223
|
|
|
224
224
|
|
|
225
|
-
## Step 3
|
|
225
|
+
## {Step 3}
|
|
226
226
|
|
|
227
227
|
|
|
228
228
|
Do you have a joke?
|
|
@@ -367,7 +367,7 @@ dddddddddd444ddddd3ddddddddddddd4ddddddddddddddddddddddddddddddddddddddddddddddd
|
|
|
367
367
|
|
|
368
368
|
|
|
369
369
|
|
|
370
|
-
## Step 4
|
|
370
|
+
## {Step 4}
|
|
371
371
|
|
|
372
372
|
**✨ Great ✨**
|
|
373
373
|
|
|
@@ -513,7 +513,7 @@ let mySprite = sprites.create(assets.image`myImage1`, SpriteKind.Player)
|
|
|
513
513
|
|
|
514
514
|
```
|
|
515
515
|
|
|
516
|
-
## Step 5
|
|
516
|
+
## {Step 5}
|
|
517
517
|
|
|
518
518
|
One benefit of having text controlled by a button is that
|
|
519
519
|
the reader gets to choose the timing of the joke.
|
|
@@ -533,7 +533,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
533
533
|
})
|
|
534
534
|
```
|
|
535
535
|
|
|
536
|
-
## Step 5
|
|
536
|
+
## {Step 5}
|
|
537
537
|
|
|
538
538
|
No matter how you split your joke, you're likely to get the biggest laugh if
|
|
539
539
|
your punchline is presented separately at the end.
|
|
@@ -546,7 +546,7 @@ the last line, and it's the part that makes people laugh.
|
|
|
546
546
|
► Break the rest of the joke up into small sentences. How many long text boxes will you need?
|
|
547
547
|
|
|
548
548
|
|
|
549
|
-
## Step 6
|
|
549
|
+
## {Step 6}
|
|
550
550
|
|
|
551
551
|
► Right-click and duplicate the ``||game: show long text [" "] [bottom]||`` block as many times as you need to fit your entire joke.
|
|
552
552
|
|
|
@@ -563,7 +563,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
563
563
|
|
|
564
564
|
|
|
565
565
|
|
|
566
|
-
## Step 7
|
|
566
|
+
## {Step 7}
|
|
567
567
|
|
|
568
568
|
**Take a minute to look at your joke on the game screen!**
|
|
569
569
|
|
|
@@ -582,7 +582,7 @@ Does the text flow better somewhere else?
|
|
|
582
582
|
game.showLongText("...you shouldn't try skydiving!", DialogLayout.Right)
|
|
583
583
|
```
|
|
584
584
|
|
|
585
|
-
## Step 8
|
|
585
|
+
## {Step 8}
|
|
586
586
|
|
|
587
587
|
**👏 Now take a bow 👏**
|
|
588
588
|
|
|
@@ -604,7 +604,7 @@ controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
|
|
|
604
604
|
})
|
|
605
605
|
```
|
|
606
606
|
|
|
607
|
-
## Finale
|
|
607
|
+
## {Finale}
|
|
608
608
|
|
|
609
609
|
**🤣 Congrats 🤣**
|
|
610
610
|
|
|
@@ -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,7 +516,7 @@ 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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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
|
|