From 2326e202fd494e97da4d57674dcfc830a093d1ec Mon Sep 17 00:00:00 2001 From: Tituya Date: Sat, 27 Jun 2020 14:47:58 +0200 Subject: [PATCH] Premier test collision horizontale --- AST3.g3a | Bin 50804 -> 51124 bytes build-cg/AST3.bin | Bin 22128 -> 22448 bytes build-cg/AST3.elf | Bin 34340 -> 34628 bytes build-cg/map | 540 +++++++++++++++++++++--------------------- build-cg/src/main.c.d | 4 +- build-cg/src/main.c.o | Bin 1696 -> 1940 bytes include/collide.h | 1 + include/define.h | 3 + src/collide.c | 23 +- src/main.c | 47 ++-- 10 files changed, 320 insertions(+), 298 deletions(-) create mode 100644 include/define.h diff --git a/AST3.g3a b/AST3.g3a index 6b53c3993cbd624883720347621a272baf7a4ec7..97a5f4d347a19318eaf1067a79e545a02ceb7348 100644 GIT binary patch delta 2723 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 delta 2413 zcmZWqeN0=|6+ibG9=4x>hs%d?!FF6?96<5KFmU)tZHg$eO`sv9(bh>0bAVAcxe+C9 z6bTksmo&-5a-Eb#XtmljLTWTJJycBUI?KUgfd47;Y zs->UrdB1bsJ?EZt?s<2n$>wb`ezzxY9H@R?E#}VwKon?KOfBYh0FV&SPFS@d3nT#a zSZEbO@&m{=tEk?SQQx5!bCECb10@v-RP?!Q2(SurpX&sc#!ZTG6g}mj0h-Yav?a-! zRsF*mc7Uf(f%53KwM0=hZ#&*!f5mbAYm?)a<8#Md$9>0IyY)Bs76)E6#0NaWHxPe& zg`C>*2=9vV{vfV{Vgk&nc;A}} zNTOdRAo8hi7!57zD_qA`h?rH8-}zF{7rFk=&XWG$$KG74bbQ>qb!zmC=oW(Pq^e`< zFU0b){6^VSbSf~4+mrDB!s+qW;MSn{(C-oc331=4(IE2(|4J@-*C6ulYS1q@u3md* z4VGGhohYAg{P0nB{TGeDTFxGh^p+P^8uuNjy!?+s&jzWjpG=4}>D#E+fsq*3AY*nl zY|e3rT(Z)lYj%QU#EP_j`p2M&>{Ie^ zg@5$zdruC%bP;}AIQvRw|Dw?e!2rf-wp|}Dc+`i?E?CW0Bv5E z9`G%M<3r4%K3JnWf!!60tG%cX?0`iB!{5-HEvBR9j5dY~Sy@uaY$ipEJhB z)MZ9>qGKzrS|FDou5>W=ux1LVIw38nkB}_qCeSK8L=`r1Rg{%z?{XQNY(rZnF9xB9 zcjf~9L4u75-jrA~CM^m);j{_%Q1>TJm|&BckB!2Fd>aw-GpXAq4gwXcf#w+4RF;iz zNCNd%v&F0(ZD#NZj0AvYjmH9^IW%xeP6OSGQs*o4D|>O>=DA&~HnR$eUn+`f$!sTro5f zMKzk`#c*!MfaY&AOQDlXkFaBfhqLl=Z5Cf8WkqTn!gfT7e5J5` z+=ynJsW?>+4aCSQxXV|}c;#+Ox6Oa!obuIZOT(Pml|J!AQLaW%1m?I2_b71VYEk;8 z$<1zCZ}H9tKpPFxiC2~hXS&H6_M5nUA?dCCKjiqs-=$Qur6!{1j|1J05#%)>a2H#c zZP>qgPN!5dEv+B8LGopD8+JtMmFK#N@*|u{=AUi%OozeeBJ5Jy!C&vaueeg&rd&=r z{+ypWXM=3|Vl>hSl}EyHwov(3tpnAv83sA&Jj&5Aw&}E5D}z7)+O4tl;iRLxr}OV= zZlQN;IIZ0Va=X#WAgivj8Y_cnl7=Ryzo!mW%}Ev2UvT;wZ04GEp!FiqT0Ck)7W=No z%GYC$G_*2H?Txb98Rgqowb^cc1jE}n>-F(8^J$Op)ze|!u1j=^(_^LfaB2v&`6aun zhj2CPZ2Zt&TirZf&O1Qs7V(@NzSuM1-B~3ADVdfX1A0)2 xQzmHX)H6OM$Q;`2{b*Yd;|^jxW;WNQVX>~WT*+n0e;g+|4jzS0XW=(p{|Bzxh|vH5 diff --git a/build-cg/AST3.elf b/build-cg/AST3.elf index ac13ab1903c2988498d3992c046a5a8ff5741351..6f2fef26079f75f81537f5a35bf4604ff001c015 100755 GIT binary patch delta 6778 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 delta 6492 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 Nzl!k?-rD+8`!{wJBdh=b delta 738 zcmXw%Ur19?9LIm>?$6!2vt27lSFq~}%`B!OO&de+ONJX{NfcNyX|^?2%usg~Vd=GE zs9@eZC5RenAOziqdWt>t5*Ya4KvmC+VkKx}T#kv1@qaWjF-tS%}GULj;~ zgwnW0>qb>&v_4IXb+rZiV6wuQt3E}QD+Dru=c8a;uqCR(t1K)Mckv24#5 z?doR#R>Q#vJSmlKp23O3ib33#)V^bJH#YOPbeSVi5Iuxp;9&~pVGLsM79OBs7!nx5 z>QDy@^Tu(lduASutKB^JPr3wpH;=VH9WyM7Y)UO0n$|ZCUMRmS-;o1ym+Y5s%Ru>L z6ciZMb5tk1SA~k(U~kd8v0b>Tz9D>2mxR#*fFA9tXc1ta!b<>@!k+*P3a zuW$yysPH-ft#A&YSm7T48ijxD@S7pcS%im-YmaFRc#07rqqPu3P|%U(T4DqMF+v?_ U(W+)~(kEOa@u!{;?vsc916)7dApigX diff --git a/include/collide.h b/include/collide.h index 48183bc..f8ba296 100644 --- a/include/collide.h +++ b/include/collide.h @@ -1 +1,2 @@ int collide(int x, int y, char block, char level[], char gravity); +int collide_solid(int x, int y, char block, char level[]); diff --git a/include/define.h b/include/define.h new file mode 100644 index 0000000..824d2fa --- /dev/null +++ b/include/define.h @@ -0,0 +1,3 @@ +#define PLAYER_SPEED 2 +#define PLAYER_GRAVITY 5 +#define PLAYER_HEIGHT 12 diff --git a/src/collide.c b/src/collide.c index fa40d83..bcc3b62 100644 --- a/src/collide.c +++ b/src/collide.c @@ -1,16 +1,33 @@ #include "collide.h" +#include "define.h" +#include int collide(int x, int y, char block, char level[], char gravity) { if((level[(int)(x/16)+(int)((y-1)/16*25)] == block || - level[(int)((x+12)/16)+(int)((y-1)/16*25)] == block) && !gravity) + level[(int)((x+PLAYER_HEIGHT)/16)+(int)((y-1)/16*25)] == block) && !gravity) //return true if player is touching a block on top of him { return 1; } - else if((level[(int)(x/16)+(int)((y+12)/16*25)] == block || - level[(int)((x+12)/16)+(int)((y+12)/16*25)] == block) && gravity) + else if((level[(int)(x/16)+(int)((y+PLAYER_HEIGHT)/16*25)] == block || + level[(int)((x+PLAYER_HEIGHT)/16)+(int)((y+PLAYER_HEIGHT)/16*25)] == block) && gravity) //return true if player is touching a block on the bottom of him { return 1; } else return 0; } + +int collide_solid(int x, int y, char block, char level[]) +{ + if(level[(int)((x+PLAYER_HEIGHT+1)/16)+(int)(y/16*25)] == block || + level[(int)((x+PLAYER_HEIGHT+1)/16)+(int)((y+PLAYER_HEIGHT-1)/16*25)] == block) //return true if player is next to a block on his right + { + return 1; + } + else if(level[(int)((x-1)/16)+(int)(y/16*25)] == block || + level[(int)((x-1)/16)+(int)((y+PLAYER_HEIGHT)/16*25)] == block) //return true if player is next to a block on his left + { + return 2; + } + else return 0; +} diff --git a/src/main.c b/src/main.c index c477e81..f564472 100644 --- a/src/main.c +++ b/src/main.c @@ -4,15 +4,12 @@ #include "drawlevel.h" #include "collide.h" -#define PLAYER_SPEED 2 -#define PLAYER_GRAVITY 5 -#define PLAYER_HEIGHT 12 +#include "define.h" int main(void) { dclear(C_WHITE); int player_x=30, player_y=35; - int a=0; char level[351]; char gravity = 0; //0 down 1 up int id_level = 1; @@ -22,13 +19,13 @@ int main(void) { dupdate(); pollevent(); - if(keydown(KEY_RIGHT)) + if(keydown(KEY_RIGHT) && collide_solid(player_x, player_y, '1', level)!=1) { player_x+=PLAYER_SPEED; if(player_x>390) player_x=0; } - else if(keydown(KEY_LEFT)) + else if(keydown(KEY_LEFT) && collide_solid(player_x, player_y, '1', level)!=2) { player_x-=PLAYER_SPEED; if(player_x<-9) player_x=386; @@ -45,24 +42,22 @@ int main(void) { break; } - if(keydown(KEY_OPTN)) + if(keydown(KEY_OPTN)) gravity=1; + else if(keydown(KEY_VARS)) gravity=0; + switch (collide(player_x, player_y, '1', level, gravity)) { - a+=1; - } - if(keydown(KEY_VARS)) - { - if (!gravity) gravity=1; - else gravity = 0; - } - if (collide(player_x, player_y, '1', level, gravity)==0 && a%2==0) - { - if(gravity) player_y+=PLAYER_GRAVITY; - else player_y-=PLAYER_GRAVITY; - } - else - { - if((player_y-4)%16!=0 && gravity) player_y--; - else if((player_y)%16!=0 && !gravity) player_y++; + case 0: + if(gravity) player_y+=PLAYER_GRAVITY; + else player_y-=PLAYER_GRAVITY; + break; + case 1: + if((player_y-4)%16!=0 && gravity) player_y--; + else if((player_y)%16!=0 && !gravity) player_y++; + break; + /*case '2': + if((player_x+PLAYER_HEIGHT)%16!=0) player_x--; + case '3': + if((player_x+PLAYER_HEIGHT)%16!=0) player_x--;*/ } draw_level(level); draw_player(player_x,player_y); @@ -70,8 +65,10 @@ int main(void) int y = player_y; dprint(150,100,C_BLACK,"%d",player_x); dprint(150,150,C_BLACK,"%d",player_y); - //dprint(100,180,C_BLACK,"%c",level[(int)(player_x/16)+(int)(player_y/16)*25+25]); - //dprint(120,180,C_BLACK,"%c",level[(int)(player_x/16)+(int)(player_y/16)*25-25]); + dprint(100,180,C_BLACK,"%c",level[(int)((x+PLAYER_HEIGHT+1)/16)+(int)(y/16*25)]); + dprint(120,180,C_BLACK,"%c",level[(int)((x+PLAYER_HEIGHT+1)/16)+(int)((y+PLAYER_HEIGHT-1)/16*25)]); + dprint(100,120,C_BLACK,"%d",collide(player_x, player_y, '1', level, gravity)); + dprint(100,140,C_BLACK,"%d",collide_solid(player_x, player_y, '1', level)); dprint(200,120,C_BLACK,"%c",level[(int)(x/16)+(int)(y/16*25)]); dprint(200,140,C_BLACK,"%c",level[(int)(x/16)+(int)((y+12)/16*25)]); dprint(200,160,C_BLACK,"%c",level[(int)((x+12)/16)+(int)((y+12)/16*25)]);