crush line

This commit is contained in:
James Turk 2023-05-06 17:52:05 -05:00
parent d368be4d7c
commit 61029569c7

View File

@ -57,10 +57,10 @@ end
function start_level() function start_level()
walls = {} walls = {}
walls[30]={{0,10}, {25,30}, {38,44}} walls[30]={{0,20}}
walls[50]={{5,10}, {20,30}, {45,55}} walls[50]={{20,60}}
walls[70]={{0,10}, {20,30}, {44,55}} walls[70]={{90, 120}}
walls[90]={{0,10}, {25,30}, {38,44}} walls[90]={{10, 40}, {80, 100}}
the_line = 64 the_line = 64
spr_frame = 1 spr_frame = 1
opp_frame = 1 opp_frame = 1
@ -86,10 +86,11 @@ end
function collide_platforms() function collide_platforms()
local left = the_line - 6 local left = the_line - 6
local right = the_line + 6 local right = the_line + 6
local py = 128-floor
for y, platforms in pairs(walls) do for y, platforms in pairs(walls) do
for plat in all(platforms) do for plat in all(platforms) do
-- check if there's a platform at this level -- check if there's a platform at this level
if floor > y and floor - y < 8 then if py > y and py - y < 8 then
-- check if either edge of player+opp is between edges -- check if either edge of player+opp is between edges
if (left > plat[1] and left < plat[2]) or (right > plat[1] and right < plat[2]) then if (left > plat[1] and left < plat[2]) or (right > plat[1] and right < plat[2]) then
printh("xcol "..(the_line-6).." "..plat[1].."-"..plat[2]) printh("xcol "..(the_line-6).." "..plat[1].."-"..plat[2])
@ -101,10 +102,19 @@ function collide_platforms()
end end
function draw_player() function draw_player()
spr(spr_frame, the_line-8, 120-floor, 1, 1, false) if crush_line then
pal({[LIGHT]=DARK}) local squash_h = 8-(crush_line - (120-floor))
spr(opp_frame, the_line, 120-floor, 1, 1, true) printh(crush_line.." "..(120-floor))
pal() sspr(40, 0, 8, 8, the_line-8, crush_line, 8, squash_h, false)
pal({[LIGHT]=DARK})
sspr(40, 0, 8, 8, the_line, crush_line, 8, squash_h, true)
pal()
else
spr(spr_frame, the_line-8, 120-floor, 1, 1, false)
pal({[LIGHT]=DARK})
spr(opp_frame, the_line, 120-floor, 1, 1, true)
pal()
end
end end
function draw_level() function draw_level()
@ -152,7 +162,9 @@ function update_level()
the_line += dx the_line += dx
-- collision -- collision
collide_platforms() if not crush_line then
collide_platforms()
end
-- player frames: -- player frames:
-- still: 1 -- still: 1