Skip to content

Commit 8c99544

Browse files
Have separate high scores for each level
1 parent a2e6f37 commit 8c99544

7 files changed

Lines changed: 113 additions & 4 deletions

File tree

.github/makecode/blocks.png

78.1 KB
Loading

.github/makecode/blocksdiff.png

-183 KB
Loading

main.blocks

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

main.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function win () {
2323
sprite_player_cam.setVelocity(0, 0)
2424
won = true
2525
timer.after(2000, function () {
26-
game.over(true)
26+
game_over(true)
2727
})
2828
}
2929
function create_status_bar (sprite: Sprite, tilemap_length: number) {
@@ -53,6 +53,14 @@ function create_status_bar (sprite: Sprite, tilemap_length: number) {
5353
}
5454
})
5555
}
56+
function game_over (win2: boolean) {
57+
info.setScore(sprite_player.x)
58+
if (info.score() > high_scores[selected_level]) {
59+
high_scores[selected_level] = info.score()
60+
}
61+
blockSettings.writeNumberArray("high_scores", high_scores)
62+
game.over(win2)
63+
}
5664
scene.onOverlapTile(SpriteKind.Player, assets.tile`auto_jump`, function (sprite, location) {
5765
timer.throttle("auto_jump", 100, function () {
5866
jump(sprite_player, constants_gravity, constants_tiles_high_jump)
@@ -153,7 +161,7 @@ function wait_for_select () {
153161
sprites.onDestroyed(SpriteKind.Player, function (sprite) {
154162
sprite_player_cam.setVelocity(0, 0)
155163
timer.after(2000, function () {
156-
game.over(false)
164+
game_over(false)
157165
})
158166
})
159167
blockMenu.onMenuOptionSelected(function (option, index) {
@@ -173,6 +181,7 @@ let sprite_progress_bar: StatusBarSprite = null
173181
let sprite_player_cam: Sprite = null
174182
let selected_level = 0
175183
let sprite_player: Sprite = null
184+
let high_scores: number[] = []
176185
let in_game = false
177186
let won = false
178187
let jumps = 0
@@ -185,6 +194,20 @@ constants_max_jumps = 2
185194
jumps = 0
186195
won = false
187196
in_game = false
197+
pause(100)
198+
if (controller.B.isPressed()) {
199+
scene.setBackgroundColor(13)
200+
pause(100)
201+
if (game.ask("Reset high scores?")) {
202+
blockSettings.remove("high_scores")
203+
blockSettings.remove("high-score")
204+
game.showLongText("Successfully reset high scores!", DialogLayout.Bottom)
205+
}
206+
}
207+
if (!(blockSettings.exists("high_scores"))) {
208+
blockSettings.writeNumberArray("high_scores", [0, 0, 0])
209+
}
210+
high_scores = blockSettings.readNumberArray("high_scores")
188211
make_player()
189212
sprite_player.say("Dash!")
190213
if (true) {
@@ -194,6 +217,7 @@ if (true) {
194217
selected_level = 3
195218
}
196219
tiles.loadMap(tiles.createMap(tilemap`level12`))
220+
blockSettings.writeNumber("high-score", high_scores[selected_level])
197221
if (selected_level == 1) {
198222
level_1()
199223
} else if (selected_level == 2) {

pxt.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"tilemaps": "github:microsoft/pxt-tilemaps#v1.10.0",
1111
"Color Fading": "github:jwunderl/pxt-color#v0.2.0",
1212
"pxt-status-bar": "github:jwunderl/pxt-status-bar#v0.4.0",
13-
"block-menu": "github:riknoll/arcade-custom-menu#v0.0.1"
13+
"block-menu": "github:riknoll/arcade-custom-menu#v0.0.1",
14+
"settings-blocks": "github:microsoft/pxt-settings-blocks#v1.0.0"
1415
},
1516
"files": [
1617
"main.blocks",

tilemap.g.jres

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,33 @@
218218
],
219219
"displayName": "level12"
220220
},
221+
"level13": {
222+
"id": "level13",
223+
"mimeType": "application/mkcd-tilemap",
224+
"data": "MDgxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
225+
"tileset": [
226+
"myTiles.transparency8"
227+
],
228+
"displayName": "level13"
229+
},
230+
"level14": {
231+
"id": "level14",
232+
"mimeType": "application/mkcd-tilemap",
233+
"data": "MDgxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
234+
"tileset": [
235+
"myTiles.transparency8"
236+
],
237+
"displayName": "level14"
238+
},
239+
"level15": {
240+
"id": "level15",
241+
"mimeType": "application/mkcd-tilemap",
242+
"data": "MDgxMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMA==",
243+
"tileset": [
244+
"myTiles.transparency8"
245+
],
246+
"displayName": "level15"
247+
},
221248
"*": {
222249
"mimeType": "image/x-mkcd-f4",
223250
"dataEncoding": "base64",

tilemap.g.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,63 @@ namespace myTiles {
255255
. . . . . . . . . . . . . . . .
256256
. . . . . . . . . . . . . . . .
257257
`, [myTiles.transparency16], TileScale.Sixteen);
258+
case "level13":
259+
case "level13":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, img`
260+
. . . . . . . . . . . . . . . .
261+
. . . . . . . . . . . . . . . .
262+
. . . . . . . . . . . . . . . .
263+
. . . . . . . . . . . . . . . .
264+
. . . . . . . . . . . . . . . .
265+
. . . . . . . . . . . . . . . .
266+
. . . . . . . . . . . . . . . .
267+
. . . . . . . . . . . . . . . .
268+
. . . . . . . . . . . . . . . .
269+
. . . . . . . . . . . . . . . .
270+
. . . . . . . . . . . . . . . .
271+
. . . . . . . . . . . . . . . .
272+
. . . . . . . . . . . . . . . .
273+
. . . . . . . . . . . . . . . .
274+
. . . . . . . . . . . . . . . .
275+
. . . . . . . . . . . . . . . .
276+
`, [myTiles.transparency8], TileScale.Eight);
277+
case "level14":
278+
case "level14":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, img`
279+
. . . . . . . . . . . . . . . .
280+
. . . . . . . . . . . . . . . .
281+
. . . . . . . . . . . . . . . .
282+
. . . . . . . . . . . . . . . .
283+
. . . . . . . . . . . . . . . .
284+
. . . . . . . . . . . . . . . .
285+
. . . . . . . . . . . . . . . .
286+
. . . . . . . . . . . . . . . .
287+
. . . . . . . . . . . . . . . .
288+
. . . . . . . . . . . . . . . .
289+
. . . . . . . . . . . . . . . .
290+
. . . . . . . . . . . . . . . .
291+
. . . . . . . . . . . . . . . .
292+
. . . . . . . . . . . . . . . .
293+
. . . . . . . . . . . . . . . .
294+
. . . . . . . . . . . . . . . .
295+
`, [myTiles.transparency8], TileScale.Eight);
296+
case "level15":
297+
case "level15":return tiles.createTilemap(hex`1000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`, img`
298+
. . . . . . . . . . . . . . . .
299+
. . . . . . . . . . . . . . . .
300+
. . . . . . . . . . . . . . . .
301+
. . . . . . . . . . . . . . . .
302+
. . . . . . . . . . . . . . . .
303+
. . . . . . . . . . . . . . . .
304+
. . . . . . . . . . . . . . . .
305+
. . . . . . . . . . . . . . . .
306+
. . . . . . . . . . . . . . . .
307+
. . . . . . . . . . . . . . . .
308+
. . . . . . . . . . . . . . . .
309+
. . . . . . . . . . . . . . . .
310+
. . . . . . . . . . . . . . . .
311+
. . . . . . . . . . . . . . . .
312+
. . . . . . . . . . . . . . . .
313+
. . . . . . . . . . . . . . . .
314+
`, [myTiles.transparency8], TileScale.Eight);
258315
}
259316
return null;
260317
})

0 commit comments

Comments
 (0)