From 3bc7c75e88dd4256e1070ed40a4a85024a379cff Mon Sep 17 00:00:00 2001 From: KikooDX Date: Fri, 14 Feb 2020 11:10:06 +0100 Subject: [PATCH] Floor system working --- levels.lua | 48 +++++++++++++++++++++++++++++++++++------------- platform.g3a | Bin 56140 -> 56828 bytes src/main.c | 31 +++++++++++++++++++++++++++++-- 3 files changed, 64 insertions(+), 15 deletions(-) diff --git a/levels.lua b/levels.lua index 6f8b071..e13be8b 100644 --- a/levels.lua +++ b/levels.lua @@ -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 diff --git a/platform.g3a b/platform.g3a index 0d989fb26953305417f19fa786e642155f2cfff5..c1d5efe4425ef33489fd2014b191ffbc544cbac2 100644 GIT binary patch delta 3009 zcmY*b3s95U6+ZtT9tlAWuOvLygb8l2yC@wLmytYfE6H-80mZ0mp`?5geP#%1V~F+Ddis5f)+-FwdY z&$;Ju@BiPrD4Dt_5rY+T)i==9;lGumA3FEH?v`LjOOmWH*X~LAM=Jm z9ifrjPafauca$Tq^7tH$Z@oWf9ERqYyK>leqR{!%ad7E;+e34?yCkA=J53K|!B`SB zx@v;q^s{hU`Me(-#vKVcVUGDvJiH>}GPE0GVIRnV$ZX|6q}aEbUZf;si~`ZBfdnHe zhk?Xmxnrkrodd*JkBB7?ZtjyEW#bt3cP;Xh`qb zWA5|E@C5D`jaU1E%kgfmCBQZ!&$mCuDnEfGDvas~mS}4+J@kbyk;l)oREk^bJm%XL zHzuBlAHVJqaie#hf;vg#rEeJy8RkTjxxe1dxJG$35p%FlN?mKPXR0t?p~G<4zO;6& zEpgYx&WW-K>qP0qjtP*LOhD{87swidTB1yDR~9Bc%ijYnGUOP{T|^RbC)Z_B2;*WGVY{f8%LB%oT1hTXNWq& z=G(QoA8Ut_IqRV}KKJz{L#@o5LqZ#Yo-9I(PX;57R0_c#;BOBbtJ|5wy6 zhK&b$rQTB_hSZs-ElB+q603+9_tdw9+euNl^80o+}x~w_MgX_pik#|W3C5CzCaFDU}E4f`bVhfSj z*hL!{3E=SnG2isQCrIHfAcg439EY?L=_y{uC5X?E@Od+4%o2cvXUBp%7J{?@X$ev` zQZ3Timr$=o>_r+zLK{Vq$SXiZK09xP-Jl}od^CuWn%hLq2^cpmu-fR5Ue)74;di;|mM6NtPKZ*ZomzKH~)#InXES(Y?s^^iAEUl{Ra)UfY9pHNS= z`;`nb_dlG0A*36S&||uTCLOrJs}%Ivfn)?Bu7T%xt%GVCKbV<;aj-i=jd{?jg|fyD zj*rRiXwu<7)i)L6Ypc2Gr`(iqvuQK0i>$@Wny~^}M2zsGVZ>%c2WER2Vjo?0@IOKC zodvRZl4iD!@!B$~ZL4J7I@?wRWnvOCj|;((l^8;&pxWOveu~x<0hzLK?V$ z1xGEfCYp()7icMaiE2BsFYYqKLdkDubK$e{fXtC%3J4NbCDA~S9D4kky?}`rTj)G| zj8l5mZ@qeCT1I<5Qwdv+F5+j;LD{s)X*rNmOpH}3^n7;EZ^P%#=i2Lb{fX;J_Ug38 zG1WJBB&3{N!SS>5Xw~nohooXFF*V$%!I8(4Y})D2@o9S6>zK{pu0t1-reCXb1=yxi zD-H5uw=H08B72(yNz)5)pT93*McLG?mvMoP{-KD^ zXrS4rb}_hm>U1=!Mb-kzXh3x=(n?G(E7nRatv$UuaDYkZt<$TRy828qpLv`vJ5%W6 z3un)4;Df9+_#)^Nq<`Y4=ZZg{fF9I|)E0tG)#5sVxgNGakvF7`5(GhGWyxgFqS*gO)un_eY>3y=IWj>6a1QPue zZAWQH=~EvszSoNYQhW}xrNf?1FbjRxMma&>E8*j}&c{LC9`C;ETYF_RyEmGCc{z;k zydtOTu7%Uq%OS5Yj5;o<=&)L$*(sNqT!{Y7suL*bh%9!}`~IyuHx zWWu||^lCd8S|Wy-R5rc#PZ*D+_*3HNqJDB5kohUo3^KReJ7;|Vcyo>+BirB?0bO%1 Po)0Ub<@fIKmlpmXlw7>q delta 2766 zcmY)w4OCO-^}ZJj2>}cQ!V?$?ky;9=`J}Y|tb=5wLMelw)>7Ab_z4h!dcXlwi%r@h z(h>yxI4BugE6&GSI>BqYMa{Ox$)^(Kfv!edXNvW(*v*OgiHlTbB{;UXpQ zZB9qwbO2fV+!`^Ts|=xqT%b4(jULqL!uO9z3d)*wbYvl>WN0ubp#kYDoCOYKD)YnGbi-`zFIpI_d} z)o_#aFEvM&1Oq8)5DRvE$n%j|bgFg-zkEO}sC%2|66mGh6bD6S0r}OJKq6+Tap&)& zBNG{E^Lp_fBPI3w1 zpm0M*nA_U|ZjR|1n%rRMn&J!}-2}s@x4`g~Vf;Tf&M=*)>#$9j(gmw$k`p3#26yZ# z_1GKh^g_gBw!O)|Pmts)ghLR=}e=?cE{V|(|XE0ny`9(>8MFzxvrJv-)(_y*PXG`pb47+OP^6uDjLID75R6~ zo@Qy=${8?ws=d8w8VSVop9OiDr*yPlZ$T$@oL1I)+b!)S8VMf^9i|xA3q+2sml=V? zxe?5`9s#1kbs$zxEwcfM!BWN~AR`xu@wBsbeE%b-ah)MD$|}{y zZ}`49ylQ!F*e&e+Ev{m;s&CzpCJf#5Eoim=kbn0k+=7X%GxdJ=xxU@40h5Y18f`bR zv$tSv6uNyI+q0#7wCkX+``T_SX>F|Y^*vt8#Zr$^QKxskwm28AjXpXNbrNPOo-iEb z=3F@zYHws*lcHYl%EsBKaK3_bQp>XbWD?|VIA}?4$g{23KKIsK)m-IV#oV?zP*~@1 zcvO?%OzYfi#CgH|gC`;XeM_J7r=?BUj20|6WA>_Y^ zM^-yxBSIEJ4#Fk`D+1~i+YuTO90)xK7ZBzjfL)76qYQx{pp6m>@(K~-XQoDe;XQ~V zMW@io2!h+i^#eQIkiJKijr;kKL9w?nn&Zhl9om}|9hGSIxFlm-3%GbwvR^am4v?tC z15IjP+ew9{iD=zPmjpiv$qne@jLDX8aQk!8outZr*F!L(Rp@{VGh$3OQ;8T0v)+k4s6u>)#vC|uD&1+c1Srsp3sp4=lJ+pYNy{v$IqfAC&HxxY%^;4G=Z$ippMQ8cI({l z#BspFu1yq;U2$A^=x!hh1Pj0*706RoT7B^5B0H6d7+b75beL27)bU#KZCRAX9?s?C z5|IDM+#?wfE6$0vKy2>Wzp&r$%J0_aQh(&Un%zZK%-&k?cr;?b@78mC=x&BT z-hX9bkiyXoyrGs>9o6w9hqfP$W9alzosQ(>>6`(!dBYB)qTFK($Xmg#Fd!s{RfIj_ z?W5}?tVxN-b$rS!%{gAeZfI)*9XLK0lsf32z|<)^@KG6`I!I$rY-h-E;>0pkQyl}6 z%0lhL#$jbx!!pe@=j5wP0+@vMoXlqGvnP}I)fZ^Q$0dHg*zoaYUTPh~ulkO7<&XR$ z+Wn^^JZ~MK_S4xx8SOxRrUdeHGrjcW(*EZSQYL-*P5K1+GX2S!kOc`j)5K@Ai-TwW z9>8X$`LoTu)LI+rFwWQ) z{W9w*KYjsuYqUsP9qOoRAkW_h^1>#+tfbSAm!Xek5okM7L#z+?Yu!E>fDHHHEW}>| zqH~DOzXtO3>2o`EeD z9S-Hhu@MI+-Wzmt;->RS(YBIaJTiJ8y1}`B3PXL`AJQWx5{yTZ7gAl6kY_NgXZ@)# jE?IHNCuIDE=W!ZSLAG&01oVH`;(28|)&A=$uPpmN00Ckb diff --git a/src/main.c b/src/main.c index fd76b17..ff2612d 100644 --- a/src/main.c +++ b/src/main.c @@ -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')) {