-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.ts
184 lines (184 loc) · 7.11 KB
/
main.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
namespace myTiles {
//% blockIdentity=images._tile
export const tile0 = img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`
}
sprites.onOverlap(SpriteKind.Player, SpriteKind.Food, function (sprite, otherSprite) {
otherSprite.destroy(effects.rings, 100)
music.baDing.play()
info.changeScoreBy(1)
if (info.score() >= 10) {
guy.setImage(img`
. . . . f f f f . . . . .
. . f f f f f f f f . . .
. f f f f f f c f f f . .
f f f f f f c c f f f c .
f f f c f f f f f f f c .
c c c f f f e e f f c c .
f f f f f e e f f c c f .
f f f b f e e f b f f f .
. f 4 1 f 4 4 f 1 4 f d d
. f e 4 4 4 4 4 4 e d d .
. f f f e e e e c a a a c
f e f b 7 7 7 c f f f f f
e 4 f 7 7 7 7 c f f f f f
e e f 6 6 6 6 c f f f f f
. . . f f f f c c f f f c
. . . f f . . f c c c c c
`)
}
})
controller.A.onEvent(ControllerButtonEvent.Pressed, function () {
if (info.score() >= 10 && guy.isHittingTile(CollisionDirection.Right)) {
music.magicWand.play()
tiles.setTileAt(tiles.getTileLocation(8, 5), myTiles.tile0)
tiles.setWallAt(tiles.getTileLocation(8, 5), false)
}
})
sprites.onOverlap(SpriteKind.Player, SpriteKind.Enemy, function (sprite, otherSprite) {
otherSprite.destroy(effects.fire, 500)
info.changeLifeBy(-1)
info.changeScoreBy(-3)
if (info.score() < 0) {
info.setScore(0)
}
if (info.life() > 0) {
music.jumpDown.play()
}
if (info.score() < 10) {
guy.setImage(img`
. . . . f f f f . . . . .
. . f f f f f f f f . . .
. f f f f f f c f f f . .
f f f f f f c c f f f c .
f f f c f f f f f f f c .
c c c f f f e e f f c c .
f f f f f e e f f c c f .
f f f b f e e f b f f f .
. f 4 1 f 4 4 f 1 4 f . .
. f e 4 4 4 4 4 4 e f . .
. f f f e e e e 5 d d d 5
f e f b 7 7 7 7 5 d d d 5
e 4 f 7 7 7 7 7 5 d d d 5
e e f 6 6 6 6 6 5 d d d 5
. . . f f f f f f 5 5 5 .
. . . f f . . f f . . . .
`)
}
})
scene.onOverlapTile(SpriteKind.Player, sprites.dungeon.collectibleInsignia, function (sprite, location) {
game.over(true)
})
let bombLit: Sprite = null
let bomb: Sprite = null
let guy: Sprite = null
guy = sprites.create(img`
. . . . f f f f . . . . .
. . f f f f f f f f . . .
. f f f f f f c f f f . .
f f f f f f c c f f f c .
f f f c f f f f f f f c .
c c c f f f e e f f c c .
f f f f f e e f f c c f .
f f f b f e e f b f f f .
. f 4 1 f 4 4 f 1 4 f . .
. f e 4 4 4 4 4 4 e f . .
. f f f e e e e 5 d d d 5
f e f b 7 7 7 7 5 d d d 5
e 4 f 7 7 7 7 7 5 d d d 5
e e f 6 6 6 6 6 5 d d d 5
. . . f f f f f f 5 5 5 .
. . . f f . . f f . . . .
`, SpriteKind.Player)
tiles.setTilemap(tiles.createTilemap(
hex`1000100000000000000000000000070000000000000000000000000000000700000000000000000000000000000007000000000000000000000000000000070000000000000000000000000000000700000000000000000000000000080007000000000001010101010101010101070000000000090909090909090909090700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000`,
img`
. . . . . . . . . . 2 . . . . .
. . . . . . . . . . 2 . . . . .
. . . . . . . . . . 2 . . . . .
. . . . . . . . . . 2 . . . . .
. . . . . . . . . . 2 . . . . .
. . . . . . . . 2 . 2 . . . . .
2 2 2 2 2 2 2 2 2 2 2 . . . . .
2 2 2 2 2 2 2 2 2 2 2 . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
`,
[myTiles.tile0,sprites.dungeon.darkGroundNorth,sprites.dungeon.darkGroundNorthWest1,sprites.dungeon.floorDark4,sprites.dungeon.floorDark3,sprites.dungeon.collectibleInsignia,sprites.castle.tilePath5,sprites.dungeon.darkGroundCenter,sprites.dungeon.floorLight3,sprites.dungeon.darkGroundEast],
TileScale.Sixteen
))
scene.setBackgroundColor(1)
controller.moveSprite(guy, 100, 0)
info.setScore(0)
info.setLife(5)
guy.setPosition(80, 88)
tiles.setTileAt(tiles.getTileLocation(9, 5), sprites.dungeon.collectibleInsignia)
info.startCountdown(60)
game.onUpdateInterval(2000, function () {
bomb = sprites.create(img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . b b b . . . . .
. . . . . . . b b . . . . . . .
. . . . . . a a a a . . . . . .
. . . . . . a a a a . . . . . .
. . . . . f f f f f f . . . . .
. . . . f f f f f f f f . . . .
. . . f f f f f f f f f f . . .
. . . f f f f f f f f f f . . .
. . . f f f f f f f f f f . . .
. . . f f f f f f f f f f . . .
. . . . f f f f f f f f . . . .
. . . . . f f f f f f . . . . .
`, SpriteKind.Food)
bomb.lifespan = 4500
bomb.setPosition(Math.randomRange(5, 121), 0)
bomb.setVelocity(0, 25)
})
game.onUpdateInterval(4000, function () {
bombLit = sprites.create(img`
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 5 . .
. . . . . . . . . 5 . 5 5 . . .
. . . . . . . . . . 4 4 . . 5 .
. . . . . . . . b b b 2 4 5 . .
. . . . . . . b b . 4 4 . . 5 .
. . . . . . a a a 5 . 5 5 . . .
. . . . . . a a a a . . . 5 . .
. . . . . f f f f f f . . . . .
. . . . f f f f f f f f . . . .
. . . f f f f f f f f f f . . .
. . . f f f f f f f f f f . . .
. . . f f f f f f f f f f . . .
. . . f f f f f f f f f f . . .
. . . . f f f f f f f f . . . .
. . . . . f f f f f f . . . . .
`, SpriteKind.Enemy)
bombLit.lifespan = 5000
bombLit.setPosition(Math.randomRange(5, 121), 0)
bombLit.setVelocity(0, 50)
})