From 54270bf1d361ed114321e9a7a6673142cc62ddf4 Mon Sep 17 00:00:00 2001 From: KikooDX Date: Sat, 15 Feb 2020 12:34:57 +0100 Subject: [PATCH] The game is now at 1x scale --- platform.g3a | Bin 56748 -> 56716 bytes src/collide.c | 18 +++++++++--------- src/draw.c | 28 ++++++++++++++-------------- src/main.c | 35 ++++++++++++++++++----------------- src/player.c | 4 ++-- 5 files changed, 43 insertions(+), 42 deletions(-) diff --git a/platform.g3a b/platform.g3a index 8cf8ee806cbe8495c4ff8f839c1390ea5c4e2d61..2dd2eaef1e0d1e5ac02b6e76647b512cc45df258 100644 GIT binary patch delta 3127 zcmZ7&4OCO-^?rH$Bt#)X2#<q08@txIM8Q2&e5J!c%*eR<+fU(U_F z-@W&{-~D~>8#&FnPIGx5j{M2f?L6%MboLJZ^6t#eW^6kR4?NZV>j=5O{-u+B6t80o zNiqlja`jYC#uPlhEboaYyyax;d{#|jy=UTgyks9%YSPPamjh^{a>@|dZ$R2P1x>Os z+BiH#?$ZFIOsSC+U;Q7z))}BkQjHO4(h$&uMxbkaK-abdjX|CSs=IW;bWKHbf<<-Z zmPJ*N=_bu2NZ6_7Bhk3Wdd9oywN3>&$tGL25rcPAYYwTHp>c&(=Mqc@Xo=}q4M*e7 zCD6_0-0Nv@(2`qSOVhYV>UWc(WlioyL4vl`g()`@3SP+ipdf8kZuG(EN62QBB?L)} zx^PWFqqLv-+upNx8(#u-)@#9=#ze%4pfc^tuQnZMs4dNSd0UslK2y-tp$$TPg(>k@ zVKJ`ttGZ`frY!2Vn|`I0iArHl>sKvP_NdauFMn&vY4}#AK;7^y(BzXqtD_KCn)Wq3 zYdSCqreoK^bm|6}J`wdMzv)_OMxI68SaBr(%e13UJngD(ciP-pK^skRCp)Qok#mbb z#jUjtZr7{`bSVmbzt&ub&S^$p*9!jl&S~qQz*@gruWp(0gtlw^YR`Ap!J2V@TsrT* zRkJ7Xc=Juq7Y;qSM8-jdUi3A5@}=|HOi3dRK42l|fm3^&9AbZ| zHiNQ*>{h(;jriCz=j*~&reDy8dxWb7W%;d6XuRsnxCZ(KArJ=5YOB}0pvzo-OVVqj z!h}WLN(@SOVOe%!vOQo7sHT2s(L zUHg9IqJ}})Nd^v=@A;xDIPXhW0Qe+5ciA1B=qEOv_&z(;=vRR9j|W=%V_c5IuZAoxmpo6M2UaL)@u`5s}=_Y*-bS(-h#U3wb1+E@OwPkIhxQ{|7R z_Vr2=0^ryRH9CLxHVUb>Ux|<7qY>3(lk7Ln74TMvn0A*`k*kEy~<+5gEpa8 z)TIM(={O8yb+=0wjaZwHpB``}&mv#@y{PbUpK<0K0blLX`mUV!8XaoR-U~EZ3otti zRM-^x`qA3WKx^@!TAaMv&ykNoYiAHU5HMf?r%}Lt!Y~5r2$&qTz=^e@4eJo{su7RMlU$2#>T0KP6CfBw;sFdB0~hky**#sv=&fvDNJs-~+MBbi zw=67je!4 z6sZB`>dcVPXlFg?X1wbu((SEuy{JgnV1@;(#3*76bxjju7h;MR0!-zaGUj{pKhZ@% zS2)?(t`Gq>(!C8&GW4vDS&peF%=I?*#1hiaTHg9Isbu*qoLY%CdP^xl5^QIZ&c4XCjnBc%wKkXQ8i= zE%#-5-EIM<$Yus68U>c+e;B z*wNKQ5r6HifeFo*&q#Fa?<5-OThc!24TihA-MaV|uBs;>lWO$&P$pT+W`=5|o0aVh6W;qy#mk*oP|Sp5^@L~V zkG+cjMeo0#iaJ^i&;lNHFJQsC?-p*9&Ah)p8cSQivy$QUsC{TShvc%e!?iNkoBKhP zB3cRb$7NpU@3}d$`}k3X!gia{(RFdfH-SFggc_r){oy4&u`x!Ht~$dWB3H4$otQr- z37pucD8A`!_`^SdWwnW;nEVE6^czHJVlLP4nmo5c8e6j=~(r!4e7i67O7tmD6cCwz@cFMf;k_ZM+ z;=W>_8D@m^xRnD5dTivD%~2g*70ZU6uP delta 3144 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 vCz9io80g#p(0L28KVA9g+PHtnc=x diff --git a/src/collide.c b/src/collide.c index 1cffad3..c3c503b 100644 --- a/src/collide.c +++ b/src/collide.c @@ -1,16 +1,16 @@ -#define PLAYER_SIDES 5 +#define PLAYER_SIDES 11 #define LEVEL_WIDTH 28 char collide(int x, int y, char level[], char tile) { - if ((level[(int)(x/8) + (int)(y/8) * LEVEL_WIDTH] == tile) || - (level[(int)(x/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) || - (level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) || - (level[(int)((x+PLAYER_SIDES)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) /*|| - (level[(int)(x/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile) || - (level[(int)((x+PLAYER_SIDES/2)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) || - (level[(int)((x+PLAYER_SIDES/2)/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) || - (level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile)*/) return 1; + if ((level[(int)(x/16) + (int)(y/16) * LEVEL_WIDTH] == tile) || + (level[(int)(x/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) || + (level[(int)((x+PLAYER_SIDES)/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) || + (level[(int)((x+PLAYER_SIDES)/16) + (int)(y/16) * LEVEL_WIDTH] == tile) /*|| + (level[(int)(x/16) + (int)((y+PLAYER_SIDES/2)/16) * LEVEL_WIDTH] == tile) || + (level[(int)((x+PLAYER_SIDES/2)/16) + (int)(y/16) * LEVEL_WIDTH] == tile) || + (level[(int)((x+PLAYER_SIDES/2)/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) || + (level[(int)((x+PLAYER_SIDES)/16) + (int)((y+PLAYER_SIDES/2)/16) * LEVEL_WIDTH] == tile)*/) return 1; return 0; } diff --git a/src/draw.c b/src/draw.c index 656d21f..190a06d 100644 --- a/src/draw.c +++ b/src/draw.c @@ -1,6 +1,6 @@ #include -#define PLAYER_SIDES 5 +#define PLAYER_SIDES 11 #define BG_COLOR 0 #define LEVEL_WIDTH 28 #define DRAW_OFFSET_Y -24 @@ -12,10 +12,10 @@ void draw_player(int old_x, int old_y, int x, int y) { if (old_x != x || old_y != y) { - drect(old_x * 2 + DRAW_OFFSET_X, old_y * 2 + DRAW_OFFSET_Y, - (old_x + PLAYER_SIDES) * 2 + 1 + DRAW_OFFSET_X, - (old_y + PLAYER_SIDES) * 2 + 1 + DRAW_OFFSET_Y, BG_COLOR); - dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_player); + drect(old_x + DRAW_OFFSET_X, old_y + DRAW_OFFSET_Y, + (old_x + PLAYER_SIDES) + DRAW_OFFSET_X, + (old_y + PLAYER_SIDES) + DRAW_OFFSET_Y, BG_COLOR); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_player); } } @@ -34,24 +34,24 @@ void draw_level(char level[], char upgrades[]) switch (level[i]) { case '0': - dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_ground); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_ground); break; case 'v': - dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_spike); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_spike); break; case '^': - dimage(x * 2 + DRAW_OFFSET_X, y * 2 + DRAW_OFFSET_Y, &img_elevator); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_elevator); break; case 'j': if (!upgrades[0]) - dimage(x*2 + DRAW_OFFSET_X, y*2 + DRAW_OFFSET_Y, &img_jitem); + dimage(x + DRAW_OFFSET_X, y + DRAW_OFFSET_Y, &img_jitem); else level[i] = '.'; } - x += 8; - if (x == 8*LEVEL_WIDTH) + x += 16; + if (x == 16*LEVEL_WIDTH) { x = 0; - y += 8; + y += 16; } i++; } @@ -59,8 +59,8 @@ void draw_level(char level[], char upgrades[]) void erase_tile(int x, int y, char level[]) { - x = (int)(x/8); - y = (int)(y/8); + x = (int)(x/16); + y = (int)(y/16); level[x + y * 28] = '.'; x *= 16; y *= 16; diff --git a/src/main.c b/src/main.c index 9ef2507..3960698 100644 --- a/src/main.c +++ b/src/main.c @@ -6,13 +6,13 @@ #include "levels.h" #include "player.h" -#define WALK_SPD 1 -#define MIN_VSPD -6.0 -#define MAX_VSPD 6 -#define JUMP_SPD -3.2 -#define GRAV 0.2 +#define WALK_SPD 2 +#define MIN_VSPD -12.0 +#define MAX_VSPD 12 +#define JUMP_SPD -6.4 +#define GRAV 0.4 #define JUMP_SCALE 12 -#define JUMP_REDUCTION -0.1 +#define JUMP_REDUCTION -0.2 #define UG_CAN_JUMP upgrades[0] void dupdate(); //gint function @@ -44,8 +44,8 @@ int main(void) int on_ground = 6; //remember if player is on solid int player_x = 0; int player_y = 0; - int start_x = 18*8 + 1; - int start_y = 9*8 + 2; + int start_x = 18*16 + 2; + int start_y = 9*16 + 4; int old_x, old_y; char spawn_buffer = 0; set_level(level_id, level); @@ -77,6 +77,7 @@ int main(void) if (vspd >= 0 && collide_solid(player_x, player_y + 1, level)) { on_ground = 6; + vspd = 0; if (spawn_buffer) { spawn_buffer = 0; @@ -106,7 +107,7 @@ int main(void) if ((collide(player_x - 1, player_y, level, '^') || collide(player_x + 1, player_y, level, '^')) && vspd > MIN_VSPD) { - if (vspd > -1) + if (vspd > -2) { vspd -= GRAV; } @@ -141,37 +142,37 @@ int main(void) vspd = 0; } //borders collision - if (player_x <= 11) + if (player_x <= 22) { level_id -= 1; - player_x = 207; + player_x = 414; 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); } - else if (player_x >= 208) + else if (player_x >= 416) { level_id += 1; - player_x = 12; + player_x = 24; 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); } - else if (player_y <= 4) + else if (player_y <= 8) { level_id -= 100; - player_y = 123; + player_y = 246; spawn_buffer = 1; set_level(level_id, level); draw_level(level, upgrades); reset_old_pos(&old_x, &old_y); } - else if (player_y >= 124) + else if (player_y >= 248) { level_id += 100; - player_y = 5; + player_y = 10; set_start_pos(&start_x, &start_y, player_x, player_y); set_level(level_id, level); draw_level(level, upgrades); diff --git a/src/player.c b/src/player.c index f87c90f..cd672ac 100644 --- a/src/player.c +++ b/src/player.c @@ -25,6 +25,6 @@ void set_start_pos(int *start_x, int *start_y, int x, int y) void reset_old_pos(int *old_x, int *old_y) { - *old_x = -8; - *old_y = -8; + *old_x = -16; + *old_y = -16; }