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
|
@@ -11,24 +11,26 @@ This activity will show you how to add extra levels to your game.
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## 2. Try It!
|
|
15
15
|
|
|
16
|
-
**🕹️ Start by playing your game in the game window
|
|
16
|
+
**🕹️ Start by playing your game in the game window**
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
20
|
Can you remember which chunk of code creates each action?
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## 3. Not So Fast
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
**Find a second chest to win the game**
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
- :binoculars: Look for your
|
|
30
|
+
``||game:game over <WIN>||``
|
|
31
|
+
block inside of the **Player overlaps chest1** container.
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
- :mouse pointer: Click the image of **chest1** and change it to **chest2**.
|
|
32
34
|
|
|
33
35
|
```blocks
|
|
34
36
|
scene.onOverlapTile(SpriteKind.Player, assets.tile`chest2`, function (sprite, location) {
|
|
@@ -36,16 +38,18 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest2`, function (sprite, lo
|
|
|
36
38
|
})
|
|
37
39
|
```
|
|
38
40
|
|
|
39
|
-
##
|
|
41
|
+
## 4. A New Level
|
|
40
42
|
|
|
41
|
-
**🙌 Add a New Level 🙌**
|
|
43
|
+
**🙌 Add a New Level 🙌**
|
|
42
44
|
When we get to the first chest, we want to take the player to a new level.
|
|
43
45
|
|
|
44
46
|
---
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
- :tree: Drag
|
|
49
|
+
``||scene:on [sprite] of kind [Player] overlaps [ ] at [location]||``
|
|
50
|
+
into an empty area of the workspace.
|
|
47
51
|
|
|
48
|
-
|
|
52
|
+
- :paint brush: Click the empty square and choose **chest1**.
|
|
49
53
|
|
|
50
54
|
|
|
51
55
|
|
|
@@ -57,12 +61,14 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo
|
|
|
57
61
|
|
|
58
62
|
|
|
59
63
|
|
|
60
|
-
##
|
|
64
|
+
## 5. Change of Scenery
|
|
61
65
|
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
- :tree: To show the player that the level has changed, drag
|
|
68
|
+
``||scene:set background image to [ ]||``
|
|
69
|
+
into the empty **Player overlaps chest1** container.
|
|
64
70
|
|
|
65
|
-
|
|
71
|
+
- :paint brush: Click the grey square and toggle to **My Assets** to choose **background2**.
|
|
66
72
|
|
|
67
73
|
|
|
68
74
|
```blocks
|
|
@@ -72,12 +78,14 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo
|
|
|
72
78
|
```
|
|
73
79
|
|
|
74
80
|
|
|
75
|
-
##
|
|
81
|
+
## 6. Change of Location
|
|
76
82
|
|
|
77
83
|
|
|
78
|
-
|
|
84
|
+
- :tree: To change the level tilemap, drag
|
|
85
|
+
``||scene:set tilemap to [ ]||``
|
|
86
|
+
to **the end** of the **Player overlaps chest1** container.
|
|
79
87
|
|
|
80
|
-
|
|
88
|
+
- :paint brush: Click the grey square and toggle to **My Assets** to choose **level2**.
|
|
81
89
|
|
|
82
90
|
|
|
83
91
|
```blocks
|
|
@@ -89,17 +97,21 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo
|
|
|
89
97
|
```
|
|
90
98
|
|
|
91
99
|
|
|
92
|
-
##
|
|
100
|
+
## 7. Back to the Beginning
|
|
93
101
|
|
|
94
|
-
**⏪ Here we go again
|
|
102
|
+
**⏪ Here we go again!**
|
|
95
103
|
|
|
96
104
|
---
|
|
97
105
|
|
|
98
|
-
|
|
106
|
+
- :sync: To carry your character back to the beginning of the level, drag the
|
|
107
|
+
``||animation:animate [mySprite] with [fly to center]||``
|
|
108
|
+
block into **the end** of the **Player overlaps chest1** container.
|
|
99
109
|
|
|
100
|
-
|
|
110
|
+
- :paper plane: Drag
|
|
111
|
+
``||sprites:[mySprite] say [":)"]||``
|
|
112
|
+
into **the end** of the **Player overlaps chest1** container.
|
|
101
113
|
|
|
102
|
-
|
|
114
|
+
- :mouse pointer: Change the text to say **Level 2!** and click the white plus **(+)** to the right of the block so that the text disappears after 500 ms.
|
|
103
115
|
|
|
104
116
|
```blocks
|
|
105
117
|
let mySprite: Sprite = null
|
|
@@ -117,7 +129,7 @@ scene.onOverlapTile(SpriteKind.Player, assets.tile`chest1`, function (sprite, lo
|
|
|
117
129
|
```
|
|
118
130
|
|
|
119
131
|
|
|
120
|
-
## Try It!
|
|
132
|
+
## 8. Try It!
|
|
121
133
|
|
|
122
134
|
**🕹️ Give it a try 🕹️**
|
|
123
135
|
|
|
@@ -128,12 +140,12 @@ Make your way to the treasure chest. You should be transported to a new level!
|
|
|
128
140
|
|
|
129
141
|
## Finished
|
|
130
142
|
|
|
131
|
-
**🥳 Congratulations 🥳**
|
|
143
|
+
**🥳 Congratulations 🥳**
|
|
132
144
|
You did it!! Can you play your game all the way to the end?
|
|
133
145
|
|
|
134
146
|
---
|
|
135
147
|
|
|
136
|
-
When you're done playing your game, click **Done** to return to the main
|
|
148
|
+
When you're done playing your game, click **Done** to return to the main skillmap for your certificate and the option to customize your final game!
|
|
137
149
|
|
|
138
150
|
|
|
139
151
|
|
|
@@ -12,39 +12,41 @@ In this activity, you'll edit images and tilemaps to create a custom game!
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## 2. Try It!
|
|
16
16
|
|
|
17
|
-
**🕹️ Start by playing your game in the game window
|
|
17
|
+
**🕹️ Start by playing your game in the game window**
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
21
|
How do you feel about the main character? The background?
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
##
|
|
24
|
+
## 3. A New Location
|
|
25
|
+
|
|
26
|
+
**Let's change the scene**
|
|
27
|
+
🖼️ 🖼️ 🖼️
|
|
25
28
|
|
|
26
|
-
**🖼️ Let's change the scene 🖼️**
|
|
27
29
|
|
|
28
30
|
---
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
- :paint brush: Click **background** in the **My Assets** window, then click **Edit** under the **Asset Preview**.
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
- :paint brush: You can either customize the current background in the **Image Editor** or toggle to the **Gallery** to choose something new.
|
|
33
35
|
|
|
34
36
|
|
|
35
37
|
|
|
36
|
-
##
|
|
38
|
+
## 4. Edit Your Monkeys
|
|
37
39
|
|
|
38
40
|
**🙈 Change the Monkey 🙈**
|
|
39
41
|
|
|
40
42
|
---
|
|
41
43
|
|
|
42
|
-
|
|
44
|
+
- :paint brush: Go through **My Assets** and edit each of the monkeys. You can choose new characters and animations from the **Gallery** or draw your own!
|
|
43
45
|
|
|
44
46
|
|
|
45
|
-
##
|
|
47
|
+
## 5. Try It!
|
|
46
48
|
|
|
47
|
-
**🕹️ Play your game after each step
|
|
49
|
+
**🕹️ Play your game after each step**
|
|
48
50
|
|
|
49
51
|
---
|
|
50
52
|
|
|
@@ -52,48 +54,48 @@ When you play your game, it's easier to see what changes need to be made to your
|
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
|
|
55
|
-
##
|
|
57
|
+
## 6. A New Level
|
|
56
58
|
|
|
57
|
-
**🚧 Let's dig in to the level editor
|
|
59
|
+
**🚧 Let's dig in to the level editor**
|
|
58
60
|
|
|
59
61
|
---
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
- :paint brush: Scroll down to find **level1**, then click **Edit**.
|
|
62
64
|
|
|
63
|
-
💡 You should see the full tilemap for level 1. You can zoom in or out using the magnifying glasses at the bottom.
|
|
65
|
+
_💡 You should see the full tilemap for level 1. You can zoom in or out using the magnifying glasses at the bottom._
|
|
64
66
|
|
|
65
67
|
|
|
66
68
|
|
|
67
69
|
|
|
68
|
-
##
|
|
70
|
+
## 7. Start Small
|
|
69
71
|
|
|
70
72
|
Let's make the character's starting platform longer.
|
|
71
73
|
|
|
72
74
|
---
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
- :binoculars: Look for the single hovering tile at the lower left of the screen. To make it longer, click the **skyblock** square beneath **My Tiles** and make sure the pencil icon is selected above.
|
|
75
77
|
|
|
76
|
-
|
|
78
|
+
- :paint brush: Click on either side of the floating platform to add extra skyblocks.
|
|
77
79
|
|
|
78
80
|
|
|
79
81
|

|
|
80
82
|
|
|
81
83
|
|
|
82
|
-
##
|
|
84
|
+
## 8. Build a Wall
|
|
83
85
|
|
|
84
86
|
Add walls on top of your new tiles so that your character doesn't fall through.
|
|
85
87
|
|
|
86
88
|
---
|
|
87
89
|
|
|
88
|
-
|
|
90
|
+
- :paint brush: Click the large **wall** icon (it has a corner missing at the top) and make sure the pencil is still selected.
|
|
89
91
|
|
|
90
|
-
|
|
92
|
+
- :paint brush: Click on each new skyblock to add a wall to the tile (it should shade overtop with a light red color.) Then click **Done**.
|
|
91
93
|
|
|
92
94
|

|
|
93
95
|
|
|
94
96
|
|
|
95
97
|
|
|
96
|
-
##
|
|
98
|
+
## 9. Try It!
|
|
97
99
|
|
|
98
100
|
**🕹️ Give it a try 🕹️**
|
|
99
101
|
|
|
@@ -103,17 +105,17 @@ Is your game platform longer? Does it hold your main character?
|
|
|
103
105
|
|
|
104
106
|
|
|
105
107
|
|
|
106
|
-
##
|
|
108
|
+
## 10. Go Crazy!
|
|
107
109
|
|
|
108
110
|
Now that you know how to add tiles and walls, you can change the levels whichever way you like.
|
|
109
111
|
|
|
110
|
-
💡 Remember that your code is built to work with certain tile names only. If you add new tiles or change the names, you'll need to go back to the code to add your changes!
|
|
112
|
+
_💡 Remember that your code is built to work with certain tile names only. If you add new tiles or change the names, you'll need to go back to the code to add your changes!_
|
|
111
113
|
|
|
112
114
|
|
|
113
115
|
|
|
114
|
-
##
|
|
116
|
+
## Finale
|
|
115
117
|
|
|
116
|
-
When you're done playing your new game, click **Done** to return to the main page to share your final game!
|
|
118
|
+
When you're done playing your new game, click **Done** to return to the main page to share your final game, then open it with a full toolbox to edit even more!
|
|
117
119
|
|
|
118
120
|
|
|
119
121
|
|
package/docs/skillmap/jungle.md
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
### jungle1
|
|
20
20
|
* allowcodecarryover: false
|
|
21
|
-
* name:
|
|
21
|
+
* name: Moving Monkey
|
|
22
22
|
* type: tutorial
|
|
23
23
|
* description: Make your monkey jump and move around!
|
|
24
24
|
* url: /skillmap/jungle/jungle1
|
|
@@ -104,9 +104,13 @@
|
|
|
104
104
|
* name: Congrats!
|
|
105
105
|
* kind: completion
|
|
106
106
|
* type: certificate
|
|
107
|
-
* imageUrl: /static/skillmap/certificates/
|
|
108
|
-
* url: /static/skillmap/certificates/
|
|
107
|
+
* imageUrl: /static/skillmap/certificates/jungle-cert.png
|
|
108
|
+
* url: /static/skillmap/certificates/jungle-cert.pdf
|
|
109
109
|
* position: 4 1
|
|
110
|
+
* actions:
|
|
111
|
+
* map: [Try 80s Rockstar Maze](/skillmap/rockstar)
|
|
112
|
+
* map: [Try our Space Explorer](/skillmap/space)
|
|
113
|
+
* editor: [Edit Your Project with a Full Toolbox](/)
|
|
110
114
|
|
|
111
115
|
|
|
112
116
|
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Shark Splash
|
|
2
|
+
* name: Shark Splash
|
|
3
|
+
* description: The deep sea is a fascinating place! This skillmap will guide you through the ocean as a shark on a journey to find food and avoid enemy submarines.
|
|
4
|
+
* infoUrl: skillmap/educator-info/shark-map-info
|
|
5
|
+
* backgroundurl: /static/skillmap/backgrounds/shark-attack-bg.png
|
|
6
|
+
* bannerurl: /static/skillmap/shark/shark4a.gif
|
|
7
|
+
* primarycolor: #ff93c4
|
|
8
|
+
* secondarycolor: #87f2ff
|
|
9
|
+
* tertiarycolor: #5c406c
|
|
10
|
+
* strokecolor: #5c406c
|
|
11
|
+
* highlightcolor: #fff609
|
|
12
|
+
* completednodecolor: #473c4d
|
|
13
|
+
|
|
14
|
+
## shark
|
|
15
|
+
* name: Shark Splash
|
|
16
|
+
* layout: manual
|
|
17
|
+
|
|
18
|
+
### shark1
|
|
19
|
+
* name: Swimming with Sharks
|
|
20
|
+
* type: tutorial
|
|
21
|
+
* description: First, we'll plop a shark into the vast ocean, then we'll give it lasers!
|
|
22
|
+
* url: /skillmap/shark/shark1
|
|
23
|
+
* tags: easy, sprites, projectiles
|
|
24
|
+
* imageUrl: /static/skillmap/shark/shark1.gif
|
|
25
|
+
* next: shark2, shark1a
|
|
26
|
+
* position: 0 0
|
|
27
|
+
|
|
28
|
+
### shark1a
|
|
29
|
+
* name: Beware the Enemy
|
|
30
|
+
* type: tutorial
|
|
31
|
+
* description: Spawn enemy submarines that track your shark!
|
|
32
|
+
* url: /skillmap/shark/shark1a
|
|
33
|
+
* tags: easy, design, background
|
|
34
|
+
* imageUrl: /static/skillmap/shark/shark1a.gif
|
|
35
|
+
* next: shark1b
|
|
36
|
+
* position: 0 2
|
|
37
|
+
|
|
38
|
+
### shark1b
|
|
39
|
+
* name: Enemies Attack!
|
|
40
|
+
* type: tutorial
|
|
41
|
+
* description: Turn your project into a game by adding damage every time a submarine catches your shark.
|
|
42
|
+
* url: /skillmap/shark/shark1b
|
|
43
|
+
* tags: easy, enemies, overlap, lives
|
|
44
|
+
* imageUrl: /static/skillmap/shark/shark1b.gif
|
|
45
|
+
* next: shark1c
|
|
46
|
+
* position: 1 2
|
|
47
|
+
|
|
48
|
+
### shark1c
|
|
49
|
+
* name: Laser Focus
|
|
50
|
+
* type: tutorial
|
|
51
|
+
* description: You have enemies. You have lasers. Let's put them together!
|
|
52
|
+
* url: /skillmap/shark/shark1c
|
|
53
|
+
* tags: easy, enemies, points
|
|
54
|
+
* imageUrl: /static/skillmap/shark/shark1c.gif
|
|
55
|
+
* next: shark2
|
|
56
|
+
* position: 2 2
|
|
57
|
+
* edges: 2 1, 1 1
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### shark2
|
|
62
|
+
* name: Food, Not Friends
|
|
63
|
+
* type: tutorial
|
|
64
|
+
* description: A shark's gotta eat! Learn to make fish appear all over the ocean.
|
|
65
|
+
* url: /skillmap/shark/shark2
|
|
66
|
+
* tags: easy, spawn, sprites
|
|
67
|
+
* imageUrl: /static/skillmap/shark/shark2.gif
|
|
68
|
+
* next: shark3
|
|
69
|
+
* position: 1 0
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### shark3
|
|
73
|
+
* name: Eat Up!
|
|
74
|
+
* type: tutorial
|
|
75
|
+
* description: Add points for each fish you catch in 15 seconds!
|
|
76
|
+
* url: /skillmap/shark/shark3
|
|
77
|
+
* tags: easy, enemies, overlaps
|
|
78
|
+
* imageUrl: /static/skillmap/shark/shark3.gif
|
|
79
|
+
* next: shark4
|
|
80
|
+
* position: 2 0
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
### shark4
|
|
84
|
+
|
|
85
|
+
* name: Under the Sea
|
|
86
|
+
* type: tutorial
|
|
87
|
+
* description: Decorate your shark's surroundings with an ocean background and seaweed.
|
|
88
|
+
* url: /skillmap/shark/shark4
|
|
89
|
+
* tags: easy, background, decorations
|
|
90
|
+
* imageUrl: /static/skillmap/shark/shark4.gif
|
|
91
|
+
* next: shark-finish, shark4a, shark4b
|
|
92
|
+
* position: 3 0
|
|
93
|
+
|
|
94
|
+
### shark4a
|
|
95
|
+
|
|
96
|
+
* name: Let's Get Animated
|
|
97
|
+
* type: tutorial
|
|
98
|
+
* description: Bring your game to life with custom animations for your characters.
|
|
99
|
+
* url: /skillmap/shark/shark4a
|
|
100
|
+
* tags: easy, animations
|
|
101
|
+
* imageUrl: /static/skillmap/shark/shark4a.gif
|
|
102
|
+
* position: 4 1
|
|
103
|
+
|
|
104
|
+
### shark4b
|
|
105
|
+
|
|
106
|
+
* name: A Whole New World
|
|
107
|
+
* type: tutorial
|
|
108
|
+
* description: Give your game a brand new theme and really make it yours!
|
|
109
|
+
* url: /skillmap/shark/shark4b
|
|
110
|
+
* tags: easy, background, decorations, asset editor
|
|
111
|
+
* imageUrl: /static/skillmap/shark/shark4b.gif
|
|
112
|
+
* position: 4 2
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### shark-finish
|
|
116
|
+
* kind: completion
|
|
117
|
+
* type: certificate
|
|
118
|
+
* url: /static/skillmap/certificates/collector-game.pdf
|
|
119
|
+
* position: 4 0
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# Paddle / Ball
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## Welcome @showdialog
|
|
5
|
+
|
|
6
|
+
Add welcome text here.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## 2.
|
|
13
|
+
|
|
14
|
+
text
|
|
15
|
+
|
|
16
|
+
```blocks
|
|
17
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 3.
|
|
23
|
+
|
|
24
|
+
text
|
|
25
|
+
|
|
26
|
+
```blocks
|
|
27
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
28
|
+
ball.setVelocity(100, 100)
|
|
29
|
+
ball.setBounceOnWall(true)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 4.
|
|
34
|
+
|
|
35
|
+
text
|
|
36
|
+
|
|
37
|
+
```blocks
|
|
38
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
39
|
+
ball.setVelocity(100, 100)
|
|
40
|
+
ball.setBounceOnWall(true)
|
|
41
|
+
//@highlight
|
|
42
|
+
let left_paddle = sprites.create(assets.image`left paddle`, SpriteKind.LeftPaddle)
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 5.
|
|
47
|
+
|
|
48
|
+
text
|
|
49
|
+
|
|
50
|
+
```blocks
|
|
51
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
52
|
+
ball.setVelocity(100, 100)
|
|
53
|
+
ball.setBounceOnWall(true)
|
|
54
|
+
let left_paddle = sprites.create(assets.image`left paddle`, SpriteKind.LeftPaddle)
|
|
55
|
+
left_paddle.left = 0
|
|
56
|
+
left_paddle.setStayInScreen(true)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## 6.
|
|
61
|
+
|
|
62
|
+
text
|
|
63
|
+
|
|
64
|
+
```blocks
|
|
65
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
66
|
+
ball.setVelocity(100, 100)
|
|
67
|
+
ball.setBounceOnWall(true)
|
|
68
|
+
let left_paddle = sprites.create(assets.image`left paddle`, SpriteKind.LeftPaddle)
|
|
69
|
+
left_paddle.left = 0
|
|
70
|
+
left_paddle.setStayInScreen(true)
|
|
71
|
+
controller.player1.moveSprite(left_paddle, 0, 150)
|
|
72
|
+
info.player1.setScore(0)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## 7.
|
|
77
|
+
|
|
78
|
+
text
|
|
79
|
+
|
|
80
|
+
```blocks
|
|
81
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
82
|
+
ball.setVelocity(100, 100)
|
|
83
|
+
ball.setBounceOnWall(true)
|
|
84
|
+
let left_paddle = sprites.create(assets.image`left paddle`, SpriteKind.LeftPaddle)
|
|
85
|
+
left_paddle.left = 0
|
|
86
|
+
left_paddle.setStayInScreen(true)
|
|
87
|
+
controller.player1.moveSprite(left_paddle, 0, 150)
|
|
88
|
+
info.player1.setScore(0)
|
|
89
|
+
let right_paddle = sprites.create(assets.image`right paddle`, SpriteKind.RightPaddle)
|
|
90
|
+
right_paddle.right = 160
|
|
91
|
+
right_paddle.setStayInScreen(true)
|
|
92
|
+
controller.player2.moveSprite(right_paddle, 0, 150)
|
|
93
|
+
info.player2.setScore(0)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
```template
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
sprites.onOverlap(SpriteKind.Ball, SpriteKind.RightPaddle, function (sprite, otherSprite) {
|
|
102
|
+
sprites.bounce(sprite)
|
|
103
|
+
info.player2.changeScoreBy(1)
|
|
104
|
+
})
|
|
105
|
+
sprites.onOverlap(SpriteKind.Ball, SpriteKind.WallRight, function (sprite, otherSprite) {
|
|
106
|
+
otherSprite.destroy()
|
|
107
|
+
info.player1.changeScoreBy(1)
|
|
108
|
+
})
|
|
109
|
+
sprites.onOverlap(SpriteKind.Ball, SpriteKind.LeftPaddle, function (sprite, otherSprite) {
|
|
110
|
+
sprites.bounce(sprite)
|
|
111
|
+
info.player1.changeScoreBy(1)
|
|
112
|
+
})
|
|
113
|
+
sprites.onOverlap(SpriteKind.Ball, SpriteKind.WallLeft, function (sprite, otherSprite) {
|
|
114
|
+
otherSprite.destroy()
|
|
115
|
+
info.player2.changeScoreBy(1)
|
|
116
|
+
})
|
|
117
|
+
|
|
118
|
+
let wall: Sprite = null
|
|
119
|
+
let ball = sprites.create(assets.image`ball`, SpriteKind.Ball)
|
|
120
|
+
ball.setVelocity(100, 100)
|
|
121
|
+
ball.setBounceOnWall(true)
|
|
122
|
+
let left_paddle = sprites.create(assets.image`left paddle`, SpriteKind.LeftPaddle)
|
|
123
|
+
left_paddle.left = 0
|
|
124
|
+
left_paddle.setStayInScreen(true)
|
|
125
|
+
controller.player1.moveSprite(left_paddle, 0, 150)
|
|
126
|
+
info.player1.setScore(0)
|
|
127
|
+
let right_paddle = sprites.create(assets.image`right paddle`, SpriteKind.RightPaddle)
|
|
128
|
+
right_paddle.right = 160
|
|
129
|
+
right_paddle.setStayInScreen(true)
|
|
130
|
+
controller.player2.moveSprite(right_paddle, 0, 150)
|
|
131
|
+
info.player2.setScore(0)
|
|
132
|
+
|
|
133
|
+
for (let index = 0; index <= 9; index++) {
|
|
134
|
+
wall = sprites.create(assets.image`wall`, SpriteKind.WallLeft)
|
|
135
|
+
wall.z = -5000
|
|
136
|
+
wall.top = index * 12
|
|
137
|
+
wall.left = 0
|
|
138
|
+
}
|
|
139
|
+
for (let index = 0; index <= 9; index++) {
|
|
140
|
+
wall = sprites.create(assets.image`wall`, SpriteKind.WallRight)
|
|
141
|
+
wall.z = -5000
|
|
142
|
+
wall.top = index * 12
|
|
143
|
+
wall.right = 160
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
game.onUpdate(function () {
|
|
148
|
+
logic.checkForWinner(sprites.spritesOfKindGone(SpriteKind.WallLeft) || sprites.spritesOfKindGone(SpriteKind.WallRight))
|
|
149
|
+
})
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
```customts
|
|
155
|
+
|
|
156
|
+
namespace SpriteKind {
|
|
157
|
+
|
|
158
|
+
//% isKind
|
|
159
|
+
export const LeftPaddle = SpriteKind.create()
|
|
160
|
+
|
|
161
|
+
//% isKind
|
|
162
|
+
export const RightPaddle = SpriteKind.create()
|
|
163
|
+
|
|
164
|
+
//% isKind
|
|
165
|
+
export const Ball = SpriteKind.create()
|
|
166
|
+
|
|
167
|
+
//% isKind
|
|
168
|
+
export const Wall = SpriteKind.create()
|
|
169
|
+
|
|
170
|
+
//% isKind
|
|
171
|
+
export const WallRight = SpriteKind.create()
|
|
172
|
+
|
|
173
|
+
//% isKind
|
|
174
|
+
export const WallLeft = SpriteKind.create()
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
namespace sprites {
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Returns true if all of kind is gone
|
|
184
|
+
*/
|
|
185
|
+
//% block="all sprites of kind $thisSpriteKind destroyed"
|
|
186
|
+
//% thisSpriteKind.shadow=spritekind
|
|
187
|
+
export function spritesOfKindGone(thisSpriteKind:number): boolean {
|
|
188
|
+
return (sprites.allOfKind(thisSpriteKind).length == 0)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Sends sprite in direction of inverse from that point
|
|
193
|
+
*/
|
|
194
|
+
//% block="bounce $thisSprite=variables_get(mySprite)"
|
|
195
|
+
export function bounce (thisSprite: Sprite) {
|
|
196
|
+
if (thisSprite.vx <= 0) {
|
|
197
|
+
thisSprite.x = thisSprite.x + 5
|
|
198
|
+
} else {
|
|
199
|
+
thisSprite.x = thisSprite.x - 5
|
|
200
|
+
}
|
|
201
|
+
thisSprite.vx = thisSprite.vx * -1
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Returns the number of remaining sprites of a kind
|
|
206
|
+
*/
|
|
207
|
+
//% block="number of sprites of kind $thisSpriteKind"
|
|
208
|
+
//% thisSpriteKind.shadow=spritekind
|
|
209
|
+
export function spritesOfKind(thisSpriteKind:number): number {
|
|
210
|
+
return (sprites.allOfKind(thisSpriteKind).length)
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
namespace logic {
|
|
219
|
+
|
|
220
|
+
//% block="end game if $thisBool"
|
|
221
|
+
//% thisBool.defl= false
|
|
222
|
+
export function checkForWinner (thisBool: boolean) {
|
|
223
|
+
if (thisBool) {
|
|
224
|
+
|
|
225
|
+
let winner = ""
|
|
226
|
+
if (info.player1.score() == info.player2.score()) {
|
|
227
|
+
winner = "The game was a tie!"
|
|
228
|
+
} else if (info.player1.score() > info.player2.score()) {
|
|
229
|
+
winner = "Player 1 Wins!"
|
|
230
|
+
} else {
|
|
231
|
+
winner = "Player 2 Wins!"
|
|
232
|
+
}
|
|
233
|
+
game.splash("Game Over!", winner)
|
|
234
|
+
effects.confetti.startScreenEffect(500)
|
|
235
|
+
game.reset()
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
```assetjson
|
|
245
|
+
{
|
|
246
|
+
"README.md": " ",
|
|
247
|
+
"assets.json": "",
|
|
248
|
+
"images.g.jres": "{\n \"image4\": {\n \"data\": \"hwQBAAwAAAAREREREREAAA==\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"wall\"\n },\n \"image1\": {\n \"data\": \"hwQNAA0AAAAAYGZmAAAAAABm3W0GAAAAYNbd3W0AAABg3d3dbQAAAGbd3d1tBgAA1hHR3W0GAAARGRHRbQEAABGZEREdAQAAEJEZEREAAAAQEZkREQAAAAAREREBAAAAABAREQAAAAAAAAAAAAAAAA==\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"ball\"\n },\n \"image2\": {\n \"data\": \"hwQEABgAAAB3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"left paddle\"\n },\n \"image3\": {\n \"data\": \"hwQEABgAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"displayName\": \"right paddle\"\n },\n \"*\": {\n \"mimeType\": \"image/x-mkcd-f4\",\n \"dataEncoding\": \"base64\",\n \"namespace\": \"myImages\"\n }\n}",
|
|
249
|
+
"images.g.ts": "// Auto-generated code. Do not edit.\nnamespace myImages {\n\n helpers._registerFactory(\"image\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n case \"image4\":\n case \"wall\":return img`\n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n1 \n`;\n case \"image1\":\n case \"ball\":return img`\n. . . . 6 6 1 1 . . . . . \n. . 6 6 6 d 1 1 1 1 . . . \n. 6 6 d d 1 9 9 1 1 1 . . \n6 6 d d d 1 1 9 9 1 1 1 . \n6 d d d d 1 1 1 9 9 1 1 . \n6 d d d d d 1 1 1 9 1 1 . \n6 d d d d d 1 1 1 1 1 1 . \n6 6 d d d d d 1 1 1 1 1 . \n. 6 d d d d d d 1 1 1 . . \n. . 6 6 6 6 6 1 1 1 . . . \n. . . . 6 6 1 1 . . . . . \n. . . . . . . . . . . . . \n. . . . . . . . . . . . . \n`;\n case \"image2\":\n case \"left paddle\":return img`\n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n7 7 7 7 \n`;\n case \"image3\":\n case \"right paddle\":return img`\n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n5 5 5 5 \n`;\n }\n return null;\n })\n\n helpers._registerFactory(\"animation\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n\n }\n return null;\n })\n\n}\n// Auto-generated code. Do not edit.\n",
|
|
250
|
+
"main.blocks": "<xml xmlns=\"https://developers.google.com/blockly/xml\"><variables><variable type=\"KIND_SpriteKind\" id=\"GY;xh:3E#-Q0`bQXH-=K\">Player</variable><variable type=\"KIND_SpriteKind\" id=\"%](8L+$)iLXB(gr[q1VP\">Projectile</variable><variable type=\"KIND_SpriteKind\" id=\"Z-!A#A{tscDOH2FpV`BK\">Food</variable><variable type=\"KIND_SpriteKind\" id=\"@Cjqk^j=14Avc:Ldh@K4\">Enemy</variable><variable type=\"KIND_SpriteKind\" id=\"7R;Ys`NElG]Jt0zjz3^y\">LeftPaddle</variable><variable type=\"KIND_SpriteKind\" id=\"4T[mYc_9GH~eMF3;J3Tq\">RightPaddle</variable><variable type=\"KIND_SpriteKind\" id=\"=R=0`*aWGgy)0^6Fpa8i\">Ball</variable><variable type=\"KIND_SpriteKind\" id=\"V!B3aslyF5Nk,:D$xf:]\">Wall</variable><variable type=\"KIND_SpriteKind\" id=\"uL/=NuFX4AF;dXzq3Bu[\">WallRight</variable><variable type=\"KIND_SpriteKind\" id=\"k_pN[XcA0rUgy.f5a)R{\">WallLeft</variable><variable id=\"G;3kgL(o/K%$weq(nrQV\">ball</variable><variable id=\"T(VrroIqq.[9i1Kvx+9z\">left_paddle</variable><variable id=\"o]G/z11#=Tm4x]aYdmWN\">mySprite</variable><variable id=\"X5AbSi:TF@iPJF}p[?66\">right_paddle</variable><variable id=\"Ac!UHWV~7qD56)=U^Fp_\">myEnemy</variable><variable id=\"vH9lY,Bi#O3@m[8dNDf{\">index</variable><variable id=\"jOn=1LQzJzqV*M1v4Z^p\">wall</variable><variable id=\"lz;wc)j+0tf)BtlQt4|w\">list</variable><variable id=\"2F/F@vbT@4#t5BNzjL7)\">winner</variable></variables></xml>",
|
|
251
|
+
"main.ts": "namespace SpriteKind {\n export const LeftPaddle = SpriteKind.create()\n export const RightPaddle = SpriteKind.create()\n export const Ball = SpriteKind.create()\n export const Wall = SpriteKind.create()\n export const WallRight = SpriteKind.create()\n export const WallLeft = SpriteKind.create()\n}\n",
|
|
252
|
+
"pxt.json": "{\n \"name\": \"pongo - assets only\",\n \"description\": \"\",\n \"dependencies\": {\n \"device\": \"*\"\n },\n \"files\": [\n \"main.blocks\",\n \"main.ts\",\n \"README.md\",\n \"assets.json\",\n \"images.g.jres\",\n \"images.g.ts\",\n \"tilemap.g.jres\",\n \"tilemap.g.ts\"\n ],\n \"targetVersions\": {\n \"branch\": \"v1.6.24\",\n \"tag\": \"v1.6.24\",\n \"commits\": \"https://github.com/microsoft/pxt-arcade/commits/5bea1575ea693e0648a647cbd86cda9776d58f48\",\n \"target\": \"1.6.24\",\n \"pxt\": \"7.2.25\"\n },\n \"preferredEditor\": \"blocksprj\"\n}\n",
|
|
253
|
+
"tilemap.g.jres": "{\n \"transparency16\": {\n \"data\": \"hwQQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\",\n \"mimeType\": \"image/x-mkcd-f4\",\n \"tilemapTile\": true\n },\n \"*\": {\n \"mimeType\": \"image/x-mkcd-f4\",\n \"dataEncoding\": \"base64\",\n \"namespace\": \"myTiles\"\n }\n}",
|
|
254
|
+
"tilemap.g.ts": "// Auto-generated code. Do not edit.\nnamespace myTiles {\n //% fixedInstance jres blockIdentity=images._tile\n export const transparency16 = image.ofBuffer(hex``);\n\n helpers._registerFactory(\"tile\", function(name: string) {\n switch(helpers.stringTrim(name)) {\n case \"transparency16\":return transparency16;\n }\n return null;\n })\n\n}\n// Auto-generated code. Do not edit.\n"
|
|
255
|
+
}
|
|
256
|
+
```
|