Skip to content

Commit fad25e7

Browse files
committed
Sprig App - Maze Ball
1 parent 62970b5 commit fad25e7

File tree

2 files changed

+216
-0
lines changed

2 files changed

+216
-0
lines changed

games/Maze-Ball.js

+216
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
/*
2+
First time? Check out the tutorial game:
3+
https://sprig.hackclub.com/gallery/getting_started
4+
5+
@title: Maze Ball
6+
@author: doggo_742
7+
@tags: []
8+
@addedOn: 2024-00-00
9+
Roll through the labyrinth! New levels every day!
10+
*/
11+
12+
const player = "p"
13+
const wall = "w"
14+
const goal = "g"
15+
setLegend(
16+
[player, bitmap`
17+
................
18+
................
19+
.....555555.....
20+
...5555555555...
21+
...5555555555...
22+
..555555555555..
23+
..555555555555..
24+
..555555555555..
25+
..555555555555..
26+
..555555555555..
27+
..555555555555..
28+
...5555555555...
29+
...5555555555...
30+
.....555555.....
31+
................
32+
................`],
33+
[wall, bitmap`
34+
LLLLLLLLLLLLLLLL
35+
LLLLLLLLLLLLLLLL
36+
LLLLLLLLLLLLLLLL
37+
LLLLLLLLLLLLLLLL
38+
LLLLLLLLLLLLLLLL
39+
LLLLLLLLLLLLLLLL
40+
LLLLLLLLLLLLLLLL
41+
LLLLLLLLLLLLLLLL
42+
LLLLLLLLLLLLLLLL
43+
LLLLLLLLLLLLLLLL
44+
LLLLLLLLLLLLLLLL
45+
LLLLLLLLLLLLLLLL
46+
LLLLLLLLLLLLLLLL
47+
LLLLLLLLLLLLLLLL
48+
LLLLLLLLLLLLLLLL
49+
LLLLLLLLLLLLLLLL`],
50+
[goal, bitmap`
51+
................
52+
................
53+
.....DDDDDD.....
54+
...DDDDDDDDDD...
55+
...DD......DD...
56+
..DD........DD..
57+
..DD........DD..
58+
..DD........DD..
59+
..DD........DD..
60+
..DD........DD..
61+
..DD........DD..
62+
...DD......DD...
63+
...DDDDDDDDDD...
64+
.....DDDDDD.....
65+
................
66+
................`],
67+
)
68+
// Make sure each sprite definition is enclosed in square brackets within the setLegend function call.
69+
setSolids([wall, player])
70+
71+
// Add this code inside the afterInput block to check for reaching the goal
72+
afterInput(() => {
73+
const playerSprite = getFirst(player)
74+
const goalTile = getTile(playerSprite.x, playerSprite.y).find(sprite => sprite.type === goal)
75+
76+
if (goalTile) {
77+
level++
78+
clearTile(playerSprite.x, playerSprite.y)
79+
if (levels[level]) {
80+
setMap(levels[level])
81+
} else {
82+
console.log("You have completed all levels!")
83+
}
84+
}
85+
})
86+
let level = 0
87+
const levels = [
88+
map`
89+
wwwwwwwwwww
90+
w.........w
91+
w.wwwww.w.w
92+
w.w...w.www
93+
w.w.www...w
94+
w...wp..w.w
95+
www.wwwwwww
96+
w......w.gw
97+
w.www.ww.ww
98+
w...w.....w
99+
wwwwwwwwwww`,
100+
map`
101+
wwwwwwwwwww
102+
w...w.....w
103+
w.w.wwwww.w
104+
w.w.......w
105+
w.wwwwwww.w
106+
w.wpwg..w.w
107+
w.w.www.w.w
108+
w.w.w...w.w
109+
w.w.w.www.w
110+
w...w.....w
111+
wwwwwwwwwww`,
112+
map`
113+
wwwwwwwwwww
114+
w........pw
115+
w.wwwwwwwww
116+
w.w...w.w.w
117+
w.www.w.w.w
118+
w...w.w...w
119+
w.w.w.w.www
120+
w.w.......w
121+
www.wwwww.w
122+
w.....wg..w
123+
wwwwwwwwwww`,
124+
map`
125+
wwwwwwwwwww
126+
wp....wgw.w
127+
www.www.w.w
128+
w.w.w.w.w.w
129+
w.w.w.w.w.w
130+
w.w...w...w
131+
w.w.w.www.w
132+
w.w.w.w...w
133+
w.www.w.www
134+
w.........w
135+
wwwwwwwwwww`,
136+
map`
137+
wwwwwwwwwww
138+
wp....w...w
139+
w.wwwwwww.w
140+
w...w.....w
141+
www.w.w.www
142+
w.....w.w.w
143+
w.wwwwwww.w
144+
w.........w
145+
www.wwwww.w
146+
w...wg....w
147+
wwwwwwwwwww`,
148+
map`
149+
wwwwwwwwwww
150+
wp....w...w
151+
w.w.w.w.w.w
152+
w.w.w.w.w.w
153+
www.www.www
154+
w.........w
155+
w.www.w.w.w
156+
w...w.w.w.w
157+
wwwwwww.w.w
158+
wg......w.w
159+
wwwwwwwwwww`,
160+
map`
161+
wwwwwwwwwww
162+
w.....w...w
163+
www.w.www.w
164+
w...wpw.w.w
165+
www.www.w.w
166+
wgw.......w
167+
w.wwwww.w.w
168+
w.w...w.w.w
169+
w.www.www.w
170+
w.........w
171+
wwwwwwwwwww`,
172+
map`
173+
wwwwwwwwwww
174+
w..pw...wgw
175+
w.www.www.w
176+
w.....w...w
177+
w.wwwwwww.w
178+
w...w.w...w
179+
www.w.w.www
180+
w.w.w.w...w
181+
w.w.w.www.w
182+
w.........w
183+
wwwwwwwwwww`,
184+
map`
185+
wwwwwwwwwww
186+
wpwg......w
187+
w.wwwwwww.w
188+
w.w.w...w.w
189+
w.w.www.w.w
190+
w.......w.w
191+
w.w.www.w.w
192+
w.w.w...w.w
193+
w.wwwww.w.w
194+
w...w.....w
195+
wwwwwwwwwww`
196+
197+
]
198+
199+
setMap(levels[level])
200+
201+
setPushables({
202+
[player]: []
203+
})
204+
205+
onInput("s", () => {
206+
getFirst(player).y += 1
207+
})
208+
onInput("w", () => {
209+
getFirst(player).y -= 1
210+
})
211+
onInput("d", () => {
212+
getFirst(player).x += 1
213+
})
214+
onInput("a", () => {
215+
getFirst(player).x -= 1
216+
})

games/img/Maze-Ball.png

73.4 KB
Loading

0 commit comments

Comments
 (0)