-
Notifications
You must be signed in to change notification settings - Fork 2
/
parallax.p8
308 lines (286 loc) · 23.5 KB
/
parallax.p8
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
pico-8 cartridge // http://www.pico-8.com
version 16
__lua__
-- how about some depth
-- ava~
step = .01667 -- our framerate, 1/60
function _init()
menuitem(1, "next demo", loadnextdemo)
frames = { 3, 4, 2, 1}
frametime = 0
frameidx = 1
speed = 30
x,y = 60, 60
walking = false
left = false
jumping = false
onground = false
jumptime = 0
crouched = false
camx = 0
end
function _update60()
frametime += 1
walking = false
jumping = false
crouched = false
onground = false
local leftcells = getleftcells()
if(btn(0) and x > 0 and not hardright(leftcells.a) and not hardright(leftcells.b)) then
x -= speed * step
walking = true
left = true
if(camx > 0 and x - camx < 28) camx -= speed * step
end
local rightcells = getrightcells()
if(btn(1) and x < 248 and not hardleft(rightcells.a) and not hardleft(rightcells.b)) then
x += speed * step
walking = true
left = false
if(camx + 128 < 256 and x - camx > 100) camx += speed * step
end
local belowcells = getbottomcells()
if(hardtop(belowcells.a) or hardtop(belowcells.b)) then
onground = true
jumptime = 0
end
if(btn(3) and not walking and onground) then
frameidx = 9
crouched = true
end
if(btn(5) and (onground or jumptime < 36)) then
jumping = true
if(onground) then
sfx(8)
end
onground = false
y -= speed * step
end
if(not onground) then
if(jumping) then
frameidx = 5
jumptime += 1
else
frameidx = 6
y += speed * step
jumptime = 36
end
else
jumptime = 0
if(walking) then
if(frametime > 10) then
frametime = 0
frameidx += 1
if(frameidx == 1) sfx(9)
if(frameidx == 3) sfx(10)
end
if(frameidx > 4) then
sfx(9)
frameidx = 1
end
elseif(not crouched) then
frametime = 0
frameidx = 0
end
end
end
function _draw()
camera(camx, 0)
cls(12)
-- the trick here is to draw
-- multiple map layers that are
-- offset from the camera at
-- different rates. they'll be
-- drawn back to front so you
-- want to draw the furthest
-- into the background first.
map(0, 0, 0 + round(camx * .80), 2, 35, 8)
map(0, 26, 12 + round(camx * .70), 23, 35, 8)
map(0, 36, -13 + round(camx * .55), 68, 42, 3)
map(0, 8, 0, 52, 32, 10)
if(onground and walking) then
spr(frames[frameidx], x, y, 1, 1, left)
else
spr(frameidx, x, y, 1, 1, left)
end
camera(0, 0)
print("parallax", 96, 122, 7)
end
function getplayercell()
local xo = 0
if(left) xo = -3
return getcell(x + 5 + xo, y + 4)
end
function getleftcells()
local cells = {}
cells.a = getcell(x + 1, y + 4)
cells.b = getcell(x + 1, y + 7)
return cells
end
function getrightcells()
local cells = {}
cells.a = getcell(x + 6, y + 4)
cells.b = getcell(x + 6, y + 7)
return cells
end
function getbottomcells()
local cells = {}
cells.a = getcell(x + 3, y + 8)
cells.b = getcell(x + 5, y + 8)
return cells
end
function getcell(wx, wy)
local cell = {}
cell.x = flr(wx / 8)
cell.y = flr((wy + 12)/8)
return cell
end
-- a simple round function,
-- adds .5 then trims digits
-- right of the decimal
function round(number)
return flr(number + .5)
end
function hardleft(cell)
local cellid = mget(cell.x, cell.y)
return fget(cellid, 1)
end
function hardright(cell)
local cellid = mget(cell.x, cell.y)
return fget(cellid, 2)
end
function hardtop(cell)
local cellid = mget(cell.x, cell.y)
return fget(cellid, 0)
end
-->8
-- demo switching
function loadnextdemo()
load('title.p8', 'previous demo')
end
__gfx__
002d2200002d2200002d2200002d2200002d2200002d2200028d2200220000000000000000000000000000000000000000000000000000000000000000000000
00822400008224000082240000822400008224000882440028224400022800000000000000000000000000000000000000000000000000000000000000000000
008244000082440000824400008244000082440008224400222244000282d200028d2200002d2200000000000000000000000000000000000000000000000000
00229a0000229a0000229a0000229a0000229a0002229a4004429a00022244002822440000822400000000000000000000000000000000000000000000000000
00024a0000024a000004aa400042a40000024a000049aa000009aa40002244002222440000824400000000000000000000000000000000000000000000000000
000a4a00000aa4000009490000099a40000aa400049aad0000aaad0000049a4000029a4000229a40000000000000000000000000000000000000000000000000
0000d5000001d50000050d00000d05000001dd0000d01000000d01000049aad00004aaa000024a90000000000000000000000000000000000000000000000000
000011000000100000100100001001000000100001000000000010000000151000914a100091a410000000000000000000000000000000000000000000000000
00000000555555555000000550000003000000000000000000000000000000000000000000000000000000000000000000000006000000000000000060000000
00000000555555dd550000dd35000033000000000000000000000000000000000000000000000000000000000000000000000077000000000000000066000000
0000000055555d5555500d55535003330000000000000000000000000000000000bbbb0000000000000000000000000000000766000000666600000066600000
00000000555555dd5555d5dd35353333000000333500000000000000000000000bbbbbb00bb00000000000000000000000006677000066776666000066660000
000000005555dd555555dd555353333300003333535300000000000000000000bbbbb3bbbbbb0bb0000000000000000000067766000677666666600066666000
0000000055dd55dd55dd55dd3533333300333333353535000000000000000000bbbbbb3bbbb3bbbb000000000000000000776677007766776666660066666600
000000005d55dd555d55dd5553333333033333335353535000000000000000003bbbbb3bbbbb3bbb000000000000000007667766076677666666666066666660
0000000055dd55dd55dd55dd33333333333333333535353500000000000000003bbbbbbb3bbb3bb3000000000000000066776677667766776666666666666666
dd55dd5500000003500000000000000550000000333333330077770000000000555555555d55dd55555555555353535300000006776677666666666660000000
55dd55dd0000003335000000000000dd550000003333333307777770077000005555555555dd55ddd55555553535353500000077667766776666666666000000
dd55dd55000003335350000000000d5555500000333333337777767777770770555555555555dd555d5555555353535300000766776677666666666666600000
55dd55dd0000333335350000000055dd5555000033333333777777677776777755555555555555ddd5d555553535353500006677667765dd5556666666660000
dd55dd5500033333535350000005dd55555550003333333367777767777767775555555555555d555d5d555553535353000677667766dd555555666666666000
55dd55dd003333333535350000dd55dd5555550033333333677777776777677655555555555555ddd5d5d555353535350077667766dd55dd5555556666666600
dd55dd5503333333535353500d55dd555555555033333333066677777667770055555555555555555d5d5d555353535307667755dd55dd555555555556666660
55dd55dd333333333535353555dd55dd555555553333333300066666677000005555555555555555d5d5d5d53535353555dd55dd55dd55dd5555555555665555
3b3b3b3b444444443b3b3b3b3b3b3b3b44444b3b3b3444443b44444444444b3b3b344b3b000000003b3b3b3b0000000077667766776677666666666666666666
b3b3b3b344444444b3b3b3b3b3b3b3b3444443b3b3b44444b3b44444444444b3b3b443b300000000b3b3b3b30000000066776677667766776666666666666666
44344434444444443b34443444344b3b44444434443444443b44444444444b3b44344434000000003b344b3b0000000077667766776677666666666666666666
4444444444444444b3b44444444444b34444444444444444b3b44444444444b34444444400000000b3b444b30000000055d76677667766776666666666666555
44444444444444443b44444444444b3b44444444444444443b44444444444b3b44444444000000003b444b3b00000000dd557766776677666666666666665555
4444444444444444b3b44444444444b34444444444444444b3b44444444444b34444444400000000b3b444b30000000055dd5577667766776666666666555555
44444444444444443b44444444444b3b44444444444444443b44444444444b3b44444444000000003b444b3b00000000dd55dd55776677666666666655555555
4444444444444444b3b44444444444b34444444444444444b3b44444444444b34444444400000000b3b444b30000000055dd55dd667766776666666655555555
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00320202028282829202020202028282828282822102020202828282824200000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
32020202028282828292020202028282828282110202020202828282828242000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00004151000000415100000041510000004151000000415100000041510000004151000000415100000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001252b222001252b222001252b222001252b222001252b222001252b222001252b222001252b222000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
125252b2b2315252b2b2315252b2b2315252b2b2315252b2b2315252b2b2315252b2b2315252b2b2220000000000000000000000000000000000000000000000
__gff__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101030501010305010007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0000000026270000000000000000000000000026270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000026270000000000000000000000000000262700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000002627000000000000000000000000000000002627000000000026270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2627000000000000000000000000000000262700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000262700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000026270000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000026270000000000000000000000000000000000000000000000002627000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000019191800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000003230303300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000001918000000000000003631313700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000003233000000000000323531313433000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000001819000019323534331818003a19363131313137000019181900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3030303030303030353131343030303830353131313134303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3131313131313131313131313131313131313131313131313131313131313131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3131313131313131313131313131313131313131313131313131313131313131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3131313131313131313131313131313131313131313131313131313131313131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3131313131313131313131313131313131313131313131313131313131313131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000001d1e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000001c3d3e1f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000001c3d3d3e3e1f000000000000001d1e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000001d1e000000002c2d3c2d2e3f2e2f00000000002c2d2e2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000002c2d2e2f00002320202020282828282400000023202028282400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000232020282824232020202020282828282824002320202028282824000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
010300000c55010551135511755118551005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500
010200000c61018033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
010200000c6101a033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000