Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Sprig App] subway surfish #2815

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
229 changes: 229 additions & 0 deletions games/subway-surfish.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
/*
First time? Check out the tutorial game:
https://sprig.hackclub.com/gallery/getting_started

@title: subway surfish
@author: scottwellcorn
@tags: []
@addedOn: 2024-01-22
*/
const player = "p"
const wall = "w"
const wall2 = "m"
const wall3 = "q"
const wall4 = "a"
const end = "e"
const floor = "f"
setLegend(
[player, bitmap`
................
....CCCC........
....CCCCC.......
.....C6226......
.....66026......
.....622666.....
.....622266.....
....6633222.....
666.666326......
6666666666......
66066666........
.606666.........
..0..0..........
..0..0..........
..0..00.........
..000...........`],
[wall, bitmap`
................
................
................
L0L0L0L0L0L0L0L0
0L0L0L0L0L0L0L0L
0L0L0L0L0L0L0L0L
2733333333333327
72339CCCC9333372
2733C9CC9C333327
3333191191333333
6333C9CC9C333336
63339CCCC9333336
3333333333333333
3300033000330003
..0L0..0L0..0L0.
..000..000..000.`],
[wall2, bitmap`
................
................
................
L0L0L0L0L0L0L0L0
0L0L0L0L0L0L0L0L
0L0L0L0L0L0L0L0L
2744444444444427
72449CCCC9444472
2744C9CC9C444427
4444191191444444
6444C9CC9C444446
64449CCCC9444446
4444444444444444
4400044000440004
..0L0..0L0..0L0.
..000..000..000.`],
[wall3, bitmap`
................
................
................
L0L0L0L0L0L0L0L0
0L0L0L0L0L0L0L0L
0L0L0L0L0L0L0L0L
2755555555555527
72559CCCC9555572
2755C9CC9C555527
5555191191555555
6555C9CC9C555556
65559CCCC9555556
5555555555555555
5500055000550005
..0L0..0L0..0L0.
..000..000..000.`],
[wall4, bitmap`
................
................
................
L0L0L0L0L0L0L0L0
0L0L0L0L0L0L0L0L
0L0L0L0L0L0L0L0L
27HHH8HHHHH8HH27
728H9CCCC9HHHH72
27HHC9CC9CH8HH27
H8HH191191HHH8HH
6HH8C9CC9CH8HH86
6H8H9CCCC9H8HHH6
HHHHHHH8HHHHHHHH
H80008H000HH000H
..0L0..0L0..0L0.
..000..000..000.`],
[end, bitmap`
..2.............
..222...........
..2.............
..222.2.2.......
..22..22.2..27.3
..22272772..72..
..777772.77.7.2.
772277.227.7..2.
..2772777227.2.2
777722.2.27..2.2
7...777777777772
7777...227772272
.......2772777..
.......7777.....
.....777........
................`],
[floor, bitmap`
1FF1FF1FF1FF1FF1
CCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCC
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
1FF1FF1FF1FF1FF1
CCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCC
1FF1FF1FF1FF1FF1`],
)

setSolids([player, wall, wall2, wall3, wall4])

onInput("s", () => {
getFirst(player).y += 1
})

onInput("w", () => {
getFirst(player).y -= 1
})

let currentLevel = 0;
const levels = [
map`
....wmw.....qmw............mwmw.aw........
..wa...wq.mw...wq..qw.qw..w....w..a..w....
wm...m....w..a...mw..w.qmw..w.qw.qw.a.wmmq
.p..wa.wm.q..aq........w....q...........ew
wq...q.......w.w.wa.wmaqmw.w..wmw.qq..w.q.
..wm...qw.wq...mw.w.........a..a...w.wq...
....w.............wqmamwqmwa.w...q.....w..`,
map`
ffffwmwfffffqmwffffffffffffmwmwfawffffffff
ffwafffwqfmwfffwqffqwfqwffwffffwffaffwffff
qqfffmffffwffafffmwffwfqmwffwfqwfqwfafwmmq
pfffwqfwmfqmfaqffffffffwffffqfffffffffffew
qqfffafffffffwfwfwafwmaqmwfwffwmwfqqffwfqf
ffwmfffqwfwqfffmwfwfffffffffaffafffwfwqfff
ffffwfffffffffffffwqmamwqmwafwfffqfffffwff`
]

setBackground(floor)

setMap(levels[0])

const melody = tune`
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424,
179.64071856287424: C4^179.64071856287424 + B5/179.64071856287424 + A5-179.64071856287424,
179.64071856287424: C4^179.64071856287424 + D4~179.64071856287424 + B5/179.64071856287424`

const playback = playTune(melody, Infinity)

let intervalTime = 200;

let interval = setInterval(intervalFunc, intervalTime)

function intervalFunc() {
if (getFirst(player).x == 40 && getFirst(player).y == 3) {
console.log("Hello World")
if (currentLevel == 0) currentLevel = 1
if (currentLevel == 1) currentLevel = 0
clearInterval(interval)
intervalTime -= 100
setInterval(intervalFunc, intervalTime)
setMap(levels[currentLevel])
} else {
getFirst(player).x += 1
}
}

afterInput(() => {
console.log(getFirst(player).x, getFirst(player).y)
})
Loading