experiments-pico8/toomgis.p8
2023-03-31 22:44:08 -05:00

324 lines
21 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

pico-8 cartridge // http://www.pico-8.com
version 41
__lua__
function _draw()
cls()
--ampm_draw()
level_draw()
end
function _update()
--ampm_upd()
toomgis_upd()
--level_draw()
level_upd()
end
function sprm(n, x, y, w, h)
-- mirrored sprite draw
spr(n, x, y, w, h)
spr(n, x+w*8, y, w, h, true)
end
-->8
-- ampm logo
ampm_t = 0
function ampm_draw()
local tx = 1000
local fx = 78
if ampm_t > 300 then
tx = 140 - (ampm_t-300)
toomgis(tx, 50)
fx = min(tx, 78)
else
end
shift = max(ampm_t - 64, 0)
width = max(128 - shift, 64)
if width > tx then
width = tx
end
for y=0,min(ampm_t, 64) do
tline(0, 64-y, width, 64-y,
0, (64-y)/64, 2/width, 0)
tline(0, 64+y, width, 64+y,
0, (64+y)/64, 2/width, 0)
end
if ampm_t > 120 then
print("presents", fx, 20, 13)
end
if ampm_t > 150 then
print("toomgis", fx, 30, 12)
end
if ampm_t > 180 then
print("in", fx, 80, 13)
end
if ampm_t > 210 then
print("rise of",
fx, 90, 12)
print("toomgis", fx, 100, 12)
end
end
function ampm_upd()
ampm_t += 1
if ampm_t > 500 then
ampm_t = 0
end
end
-->8
-- toomgis
tangle = 0
tbody = {
}
pieces = 1
MAX_PIECES = 200
px = 0
py = 0
vx = 0
vy = 0
yacc = 0
function add2body(n)
if pieces < MAX_PIECES then
pieces += 1
-- center hole + variance + grow outwards
local r = 5 + rnd(5) + (pieces / MAX_PIECES) * 25
add(tbody, {n=n, r=r, off=rnd(4)})
end
end
function full()
for i=2, 14 do
add2body(i)
add2body(i)
add2body(i)
end
end
function toomgis_draw(x, y)
--sprm(32, x, y+12, 1, 2)
for i=1,#tbody do
-- rotate drawing order
local bs = tbody[(i+flr(th)) % #tbody + 1]
spr(bs.n,
x+4+bs.r*sin(tangle+bs.off),
y+4+bs.r*cos(tangle+bs.off)
)
end
sprm(0, x, y, 1, 2)
end
function toomgis_upd()
tangle += vx * 0.01
px += vx
py = max(0, py+vy)
vy += yacc
printh("vy="..vy.." yacc="..yacc)
end
-->8
-- level
levels = {
{name="store aisle",
sky=7,
gnd=5,
mapy=2
},
{name="city nights",
sky=2,
gnd=5,
mapy=5
}
}
lvl = levels[1]
horizon = 64
function level_draw()
-- background
--rectfill(0, 0, 128, horizon, lvl.sky)
--rectfill(0, horizon, 128, 128, lvl.gnd)
--map(0, lvl.y, 0, 32, 16, 8)
-- each level is 3tl/24px
cls(lvl.sky)
--- zoom should go from 16 to 2 w/ growth
local zoom = 16 - (14 * (pieces / MAX_PIECES))
local h=24 * zoom
for y=0,h do
tline(0, 128-h+y, 128, 128-h+y,
(px-20)/(8*zoom), 2+y/(8*zoom), 1/(8*zoom), 0)
end
toomgis_draw(20, 96-py)
end
function level_upd()
if btn() then
vx += 0.1
end
if btn() then
vx -= 0.05
end
if vx < 0 then
vx = 0
elseif vx > 3 then
vx = 3
end
if btnp() and py == 0 then
yacc = 10
elseif py > 0 then
yacc = -3
elseif py == 0 and yacc < 0 then
-- on ground
yacc = 0
vy = 0
end
-- make toomgis bigger as he rolls
add2body(flr(rnd(14)+2))
end
__gfx__
000022220000000000444400000ee000aaaaaaaa0000000000555500045454000099990000087000000000000cccccc00077700000000a0000ffff0000005555
000222220000000004eee440009ea9000aa77aa0060000000088880004545400099999900007400009f9f9f0cc1111cc06444660000a0a000fff4ff000055555
00224444000000004e444e44009ae9000aa778a000666600008ff800055555000aaaa8a00044470099999999c1111f1c064446660a0aaaa0ff4ff4ff00055555
00224554000000004e4004e4009aa9000a8888a00088880000ffff0004545400088aaaa000477700aaaaaaaac1f1ff1c0644460600aaaa004fffffff00099999
00225c74000000004e4004e4009ae9000a877aa00087870000f44f0004545400008aa80000ffff004a444a44c1ff111c0644466600888880fff4ff4f00099999
022247440000000044e444e4009ea9000aaaaaa000787800008ff8000555550000aa880000ffff00bbb88abbc1fff11c0644466000899880f4ffffff00997799
0222244400000000044eee40009ae9000aaaaaa0008787000088880004545400000aa000000ff00099998999cc1111cc06644600008989800ff4f4f000977779
022224770000000000444400000ee00000aaaa000088880000088000045454000008a000000ff000099999900cccccc0006666000008880000ffff0009977079
02202944000000000000000000333300000033000000000000033000000330000003300000000000000000000033330000000000000000000000000009997799
202029990000000000000000030330300000033000330300023333300099990003333330000000300000000003ffff3000000000000000000000000009999999
20202099000000000000000030300303000999330000300022233320099a9a90033bb33000000b300000000003ffff3000000000000000000000000009999999
202024090000000000000000030330300099990300888800023202229999999933bbbb330000b33000000000033333300000000000000000000000000a990000
2020404f00000000000000000330033000999900088888800322232099999a9933bbbb33000b330000000000033333300000000000000000000000000a999000
0020040f00000000000000000003300009999000088888800202020099999999333bb33300b3300000000000033333300000000000000000000000000aaa9999
00000000000000000000000000033000999000000888888022202220099999900333333003330000000000000333333000000000000000000000000000aa9999
00000000000000000000000000033000990000000088880002000200009999000030030000000000000000000033330000000000000000000000000000aaaaaa
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000aaaaaa
00000000000000000000000000000000000006440000000000000000099999099099099000000000000000000000000000000011000000000000000000a0aaaa
0700077700000000000000000000000000006444000000000000000099909909999999900000000000000000000000000000011100000000000000000000aaaa
00707700000000000000000000000000000044540000000000000000999099099099099000000000000000000000000000001111000000000000000000009aaa
0007077700000000000000000000000000044546000000000000000088808808808808800000000000000000000000000000066600000000000000000009999a
000777000000000000000000000000000044540000000000000000000880880880880880000000000000000000000000000006b6000000000000000000999999
0007777700000000000000000000000bb44540000000000000000000008888088088088800000000000000000000000000000166000000000000000009999999
00007000000000000000000000000bbbb55400000000000000000000000000000000000000000000000000000000000000000016000000000000000009999999
000077770000000000000000000bbbbb5b5400000000000000000000000000000000000000000000000000000000000000111001000000000000000099999999
0000000700000000000000000bbbb77575bb00000000000000000000022220022022022000000000000000000000000006611111000000000000000099999999
000000770000000000000000bbbb775757bb00000000000000000000020222022222222000000000000000000000000000001111000000000000000099999999
000007700000000000000000bbbbbbb577bb00000000000000000000020222022022022000000000000000000000000000011111000000000000000099999999
000000700000000000000000000000b77bb000000000000000000000011110011011011000000000000000000000000000111111000000000000000099999999
000007000000000000000000000000b7bb0000000000000000000000011000011011011000000000000000000000000000111111000000000000000099999999
000077000000000000000000000000bbb00000000000000000000000011000011011011100000000000000000000000000111111000000000000000099999999
000770000000000000000000000000bb000000000000000000000000011000000000000000000000000000000000000000000440000000000000000009999999
22000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22722200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
27772220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
20072222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22022222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
22222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00222220544444445666666656666666566666665666666656666666066666660005500000000000000000000000000000000000000000000000000000000000
0022222054a4a4a456aa6aa656aa65565666666656556aa656556aa6565555560056650000000000000000000000000000000000000000000000000000000000
00000000544444445666666656666666566666665666666656666666565555560566665000000000000000000000000000000000000000000000000000000000
0000000054a4a4a456aa6aa656aa6aa6566666665655655656aa6556565555560056650000000000000000000000000000000000000000000000000000000000
00000000544444445666666656666666566666665666666656666666565555560005500000000000000000000000000000000000000000000000000000000000
0000000054a444a45666666656aa6aa65666666656556aa656aa6556565555560056650000000000000000000000000000000000000000000000000000000000
00000000544454445666566656666666566666665666666656666666565555560056650000000000000000000000000000000000000000000000000000000000
00000000544454445666566656aa6aa65666666656aa655656aa6556566666660556655000000000000000000000000000000000000000000000000000000000
00000000000000000004400000044000000443330004400000044000000330000004400000044000000330000004400000044000000000000000000000000000
00000000000000000004400000044000000444330034330003344330003333004004400003344330003330000004400000334300000000000000000000000000
00000000000000000004400033044000000440330333333003333330003333000444400000333300003330003334400000033300000000000000000000000000
00000000000000000004400034444033000440000333333000044000033333300404400000044000033333333334400400044000000000000000000000000000
00000000000000000004400033044333000440000333333303333330033333300004400400344300033333300304444003344330000000000000000000000000
00000000000440000004400000044433000433303334433300044000333333330004444000033000000340000004400003333330000000000000000000000000
00000000000440000004400000044000000443303334333303333330333333330004400000044000003340000004400000333300000000000000000000000000
00000000000440000004400000044000000440000033400000044000000440000004400000044000003440000004400000044000000000000000000000000000
00000000000000000000000000000000030000000000000000333300000000000000000000000000000000000000000000600000000000000000000000000000
00000000000000000000000000044000333000000099990033333830066666600044440000000000000007000000000006860000000000000000000000000000
000000000000000000000000004444000400000009aaaa903834333006655660044444400000eee0000076700000000008880000000000000000000000000000
00000000000000000000000004cccc40333000000acaaca00334383006566560055555500000ece000007670000cc00008886660000000000000000000000000
0000000000000000000000004cccccc4040033300aaaaaa00034330006666660044444400eeeeee0077776700006600006668880000000000000000000000000
0000000000000000000000000ccc8cc0333034300aa55aa00004000006566560055555500ecce4e00757767000cccc0008888480000000000000000000000000
0000000000000000707070700ccc8cc0040004000aa55aa00004000006566560044554400eeee4e0075777700666666008888480000000000000000000000000
00000000bbbbbbbb7b7b7b7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb000000000000000000000000
00000000666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666600000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000880880d0009909900d0d0880099000000bb0bb000000000008b9ec00000000000000700007d7d7d000000000000fff00cc0cc0cc0550555000000000
00000000880880c0009909900c0c0880099000000ba0ba000bbbbb900ce8b9e000000000000707000d7d7d700a0a0a000ffffff0cc0cc0cc0440444000000000
00000000880880c0090990990c0c0880909909900ba0ba000b999990089beac000000000007070700d7d7d700a9a9a900eeeeef0ff0ff0ff0440444000000000
00000000880880c0090990990c0c0880909909900bb0bb000bbbbb900ed88ed000000000070707070d7d7d700a9a9a900ffffff0cc0cc0cc0550555000000000
00000000666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666600000000
00000000555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555500000000
__map__
2728000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3738000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
b9b9b9b5b1b53ab53a3a3a3a2a00000000bdbb000000b5b3b7bdbcbcb200b5b5b50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
b7b5b5b2babbbab5bd2ab1b3b6b6b20000bdbbb9b5b6b4b3b8b7b4b7b8b8b5b5b50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
b1b2b5b2babbbab5b201b3b5b5b5b20000bdbbb9b6b2b4b3b4b4b8b7b5b4b5b5b50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000003a3a3a00000101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000003a3a3a3a00013a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000003a3a3a3a000101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
a2a2a3a4a2a1a1a6aba6a5a1a8a1a2a2a2acaba2a2a2a2a1a1a4a9a1a6a1a1a7a2a2aaa1a2a3a2a3a2a3a2a5a2a5a2a5a2a8a8a2a2a6a4a6a6aba4a4a1a6a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000870000000000850085000089000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000008300848583008700830086000083000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0082008200828282008200820082008182008100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
000100000050013160155601516018560181601b560191601d5601c1601f5601d1601f5601e1601f5601d1601d5601a160185600f1601056011160145601416018560181601b5601a1601b560191601b56017160
001400000010000150001500015000100001500010002150001000015000150001500010000150001000215000100001500015000150001000015000100021500010000150001500015000100001500010005150
001400000a0500c0500c0500a050050500705007050050500a0500c0500c0500a0500c0500f0500f0500c05011050130501305011050130501605016050130501d0501b0501b0501d0501b05018050180501b050
361400000050200502275520050200502275520050200502275522455027552005022755227500275522455227550275002755227500275002755227500275002755224550275522750027552245522455222552
__music__
01 01424344
00 01024344
02 01024344
00 01020344