Floor system working

This commit is contained in:
KikooDX 2020-02-14 11:10:06 +01:00
parent 42b504fc07
commit 3bc7c75e88
3 changed files with 64 additions and 15 deletions

View File

@ -3,8 +3,11 @@
-- - placeholder tile
-- v spike
-- ^ elevator
-- j jump upgrade
--
-- level id format : YYXX with YY and XX being the Y and X position on the map
levels = {[[
levels = {[5049] = [[
----------------------------
-00000000000000000000000000-
-00000000000000000000000000-
@ -23,18 +26,18 @@ levels = {[[
-00000000000000000000000000-
----------------------------
]],
[[
[5050] = [[
----------------------------
-00000000000000000000000000-
-00000000000000000000000000-
-000000000000000000000000000
-00000000000...............-
-0000000000................-
-0000000000....0000000000000
-000000^....000000000000000-
-000000^....000000000000000-
-00000000....000000000000000
-00000000..................-
-00000000..................-
-0000000000.....000000000000
-0000000000.....00000000000-
-00000000..........00000000-
000000.............00000000-
-..........-.00000000000000-
-.............0000000000000-
-..........0000000000000000-
-.......0000000000000000000-
000000000000000000000000000-
@ -42,7 +45,7 @@ levels = {[[
-00000000000000000000000000-
----------------------------
]],
[[
[5051] = [[
----------------------------
-00000000000000000000000000-
-00000000000000000000000000-
@ -61,7 +64,26 @@ levels = {[[
-00000000000000000000000000-
----------------------------
]],
[[
[4950] = [[
----------------------------
-00000000000000000000000000-
-00000000000000000000000000-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-00......................00-
-0000000...0000000000000000-
-0000000...0000000000000000-
----------------------------
]],
[0] = [[
----------------------------
-00000000000000000000000000-
-00000000000000000000000000-
@ -85,9 +107,9 @@ levels = {[[
to_write = ""
--remove all "\n" from level strings
for i, v in ipairs(levels) do
for i, v in pairs(levels) do
v = string.gsub(v, "\n", "")
to_write = to_write.." case "..(i-1)..":\n memcpy(level, \""..v.."\", "..#v..");\n break;\n"
to_write = to_write.." case "..i..":\n memcpy(level, \""..v.."\", "..#v..");\n break;\n"
end
--finish and write

Binary file not shown.

View File

@ -30,7 +30,7 @@ int main(void)
{
volatile int has_ticked = 1; //fps cap
char level[477];
int level_id = 1;
int level_id = 5050;
//start upgrades (mostly bools)
char upgrades[] = {
0 //can jump
@ -47,6 +47,7 @@ int main(void)
int start_x = 18*8 + 1;
int start_y = 9*8 + 2;
int old_x, old_y;
char spawn_buffer = 0;
set_level(level_id, level);
draw_level(level, upgrades);
player_x = start_x;
@ -73,7 +74,15 @@ int main(void)
player_x += hspd;
}
//ground detection
if (vspd >= 0 && collide_solid(player_x, player_y + 1, level)) on_ground = 6;
if (vspd >= 0 && collide_solid(player_x, player_y + 1, level))
{
on_ground = 6;
if (spawn_buffer)
{
spawn_buffer = 0;
set_start_pos(&start_x, &start_y, player_x, player_y);
}
}
else
{
if (on_ground != 6 && vspd < MAX_VSPD) vspd += GRAV;
@ -149,6 +158,24 @@ int main(void)
draw_level(level, upgrades);
reset_old_pos(&old_x, &old_y);
}
else if (player_y <= 4)
{
level_id -= 100;
player_y = 123;
spawn_buffer = 1;
set_level(level_id, level);
draw_level(level, upgrades);
reset_old_pos(&old_x, &old_y);
}
else if (player_y >= 124)
{
level_id += 100;
player_y = 5;
set_start_pos(&start_x, &start_y, player_x, player_y);
set_level(level_id, level);
draw_level(level, upgrades);
reset_old_pos(&old_x, &old_y);
}
//item get
if (collide(player_x, player_y, level, 'j'))
{