From 26d3a2efcaf5aa33b87d6d44dc52d7a434dd2506 Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Sun, 27 Nov 2022 22:00:59 +0100 Subject: [PATCH] Sprites no have a z-coordinate --- Input/inputHandler.c | 24 ++++++++++++++++-------- IsometricMap/isometricMap.c | 22 +++++++++++++++++++++- IsometricMap/isometricMap.h | 1 + IsometricMap/isometricRenderer.c | 2 +- IsometricMap/tile.h | 1 + List/list.c | 11 ++++++++--- List/list.h | 2 +- game.o | Bin 0 -> 5256 bytes inputHandler.o | Bin 0 -> 7064 bytes isometricMap.o | Bin 0 -> 5632 bytes isometricRenderer.o | Bin 0 -> 2960 bytes list.o | Bin 0 -> 4208 bytes main.c | 2 +- main.o | Bin 0 -> 2984 bytes spiel | Bin 0 -> 30856 bytes sprite.c | 11 ++++++++--- sprite.h | 3 ++- sprite.o | Bin 0 -> 3560 bytes tile.o | Bin 0 -> 928 bytes 19 files changed, 60 insertions(+), 19 deletions(-) create mode 100644 game.o create mode 100644 inputHandler.o create mode 100644 isometricMap.o create mode 100644 isometricRenderer.o create mode 100644 list.o create mode 100644 main.o create mode 100755 spiel create mode 100644 sprite.o create mode 100644 tile.o diff --git a/Input/inputHandler.c b/Input/inputHandler.c index 02720f3..269ea3d 100644 --- a/Input/inputHandler.c +++ b/Input/inputHandler.c @@ -122,8 +122,16 @@ void mouseInput(Game *game){ float height = GetMousePosition().y - inputHandler->rectStart.y; // Add Sprite - if(width + height <= 1){ - ListInsertBack(sprites, SpriteCreate(texture, inputHandler->cursorWorldPos.x, inputHandler->cursorWorldPos.y)); + if(abs(width) + abs(height) < 20){ + int maxWidth = (game->layers[0]->widthBounds-1) * game->layers[0]->textureWidth; + int maxHeight = (game->layers[0]->heightBounds-1) * game->layers[0]->textureHeight; + if(inputHandler->cursorWorldPos.x < 0){ printf("OutOfBoundsDestination Spawn\n");} + else if(inputHandler->cursorWorldPos.y < 0){ printf("OutOfBoundsDestination Spawn\n");} + else if(inputHandler->cursorWorldPos.x > maxWidth){ printf("OutOfBoundsDestination Spawn\n");} + else if(inputHandler->cursorWorldPos.y > maxHeight){ printf("OutOfBoundsDestination Spawn\n");} + else { + ListInsertBack(sprites, SpriteCreate(texture, inputHandler->cursorWorldPos.x, inputHandler->cursorWorldPos.y)); + } } // Berechnung, welche Sprites ausgewählt wurden, scuffed @@ -167,14 +175,14 @@ void mouseInput(Game *game){ while (current != 0){ if(current->data.selected){ current->data.hasDestination = 1; - float destX = inputHandler->cursorWorldPos.x; - float destY = inputHandler->cursorWorldPos.y; - if(destX < 0){ destX = 0; } - if(destY < 0){ destY = 0; } + float destX = inputHandler->cursorWorldTile.x * game->layers[0]->textureWidth; + float destY = inputHandler->cursorWorldTile.y * game->layers[0]->textureHeight; int maxWidth = (game->layers[0]->widthBounds-1) * game->layers[0]->textureWidth; int maxHeight = (game->layers[0]->heightBounds-1) * game->layers[0]->textureHeight; - if(destX > maxWidth){ destX = maxWidth; } - if(destY > maxHeight){ destY = maxHeight; } + if(destX < 0){ printf("OutOfBoundsDestination"); continue; } + if(destY < 0){ printf("OutOfBoundsDestination"); continue; } + if(destX > maxWidth){ printf("OutOfBoundsDestination"); continue; } + if(destY > maxHeight){ printf("OutOfBoundsDestination"); continue; } current->data.destX = destX; current->data.destY = destY; diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index fe8307d..7907eba 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -40,6 +40,7 @@ IsometricMap * IsometricMapInit(int layer){ tmp->textureId = -1; tmp->x = i; tmp->y = j; + tmp->z = layer; tiles[i][j] = tmp; } } @@ -116,11 +117,30 @@ Tile * IsometricMapGetTileFromWorldCoordinates(IsometricMap *isometricMap, float return ptr; } +Tile * IsometricMapGetMostUpperTile(IsometricMap **isometricMap, Tile *tile){ + Tile *ptr = (Tile *) malloc(sizeof(Tile *)); + int n = 9; + for(n=9;n>=0;n--){ + if( tile->x < isometricMap[n]->widthBounds && tile->y < isometricMap[n]->heightBounds && + tile->x >= 0 && tile->y >= 0 ){ + if(isometricMap[n]->tiles[tile->x][tile->y]->textureId != -1){ + ptr->x = isometricMap[n]->tiles[tile->x][tile->y]->x; + ptr->y = isometricMap[n]->tiles[tile->x][tile->y]->y; + ptr->z = isometricMap[n]->tiles[tile->x][tile->y]->z; + return ptr; + } + } + } + ptr = 0; + return ptr; +} + // IsometricMapAddTile and IsometricMapChangeTextureIdOfTile pretty much do the same by now... void IsometricMapAddTile(IsometricMap *isometricMap, int x, int y, int textureId){ isometricMap->tiles[x][y]->textureId = textureId; isometricMap->tiles[x][y]->x = x; - isometricMap->tiles[x][y]->y = y; + isometricMap->tiles[x][y]->y = y; + isometricMap->tiles[x][y]->z = isometricMap->layer; } void IsometricMapChangeTextureIdOfTile(IsometricMap *map, int x, int y, int id){ if( x < map->widthBounds && y < map->heightBounds && diff --git a/IsometricMap/isometricMap.h b/IsometricMap/isometricMap.h index 2a4c8fb..3471a1e 100644 --- a/IsometricMap/isometricMap.h +++ b/IsometricMap/isometricMap.h @@ -20,6 +20,7 @@ typedef struct IsometricMap{ IsometricMap * IsometricMapInit(int layer); Vector2 * IsometricMapCalcOffsetForTileAt(int x, int y, int textureSize); +Tile * IsometricMapGetMostUpperTile(IsometricMap **isometricMap, Tile *tile); Tile * IsometricMapGetTileFromArrayPosition(IsometricMap *isometricMap, int x, int y); // Project: Screen Coordinates -> World Coordinates void IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, float x, float y, Vector2 *tmp); diff --git a/IsometricMap/isometricRenderer.c b/IsometricMap/isometricRenderer.c index 3e7f706..f767d27 100644 --- a/IsometricMap/isometricRenderer.c +++ b/IsometricMap/isometricRenderer.c @@ -51,7 +51,7 @@ void IsometricRendererRenderIsometricMap(IsometricMap **map, InputHandler *input int textureId = map[n]->tiles[i][j]->textureId; float x = map[n]->originX + offset->x; - float y = map[n]->originY + offset->y + map[n]->textureHeight - map[n]->tileTextures[textureId].height; + float y = map[n]->originY + offset->y;// + map[n]->textureHeight - map[n]->tileTextures[textureId].height; DrawTexture(map[n]->tileTextures[textureId], x, y, WHITE); diff --git a/IsometricMap/tile.h b/IsometricMap/tile.h index 62c052b..b532af8 100644 --- a/IsometricMap/tile.h +++ b/IsometricMap/tile.h @@ -6,6 +6,7 @@ typedef struct Tile{ int textureId; int x; int y; + int z; } Tile; #endif \ No newline at end of file diff --git a/List/list.c b/List/list.c index 3e480e9..08affa7 100644 --- a/List/list.c +++ b/List/list.c @@ -18,7 +18,7 @@ void ListPrintForward(List *list){ printf("\n[\n"); while(current != 0){ - printf("(%f | %f),\n", current->data.x, current->data.y); + //printf("(%f | %f),\n", current->data.x, current->data.y); current = current->next; } printf("]\n"); @@ -69,7 +69,7 @@ List * ListInit(){ return newList; } -void ListDrawAllSprites(List *list, IsometricMap *map, Camera2D *camera){ +void ListDrawAllSprites(List *list, IsometricMap **map, Camera2D *camera){ Node *current = list->head; while(current != 0){ @@ -105,7 +105,7 @@ void ListActAllSprites(Game *game){ // Change sprite according to direction Vector2 nullvektor = {0,0}; float f = Vector2Angle(movement, nullvektor); - printf("Angle: %f\n", f); + //printf("Angle: %f\n", f); f /= 3.14; f *= 3.5; f += 3.5; @@ -114,6 +114,11 @@ void ListActAllSprites(Game *game){ } } + // updating z-position + Tile *floorTile = IsometricMapGetTileFromWorldCoordinates(game->layers[0], current->data.x, current->data.y); + floorTile = IsometricMapGetMostUpperTile(game->layers, floorTile); + current->data.z = floorTile->z; + current = current->next; } diff --git a/List/list.h b/List/list.h index be3263b..a7e80f9 100644 --- a/List/list.h +++ b/List/list.h @@ -29,7 +29,7 @@ void ListPrintForward(List *list); void ListInsertFront(List *list, Sprite *data); void ListInsertBack(List *list, Sprite *data); List * ListInit(); -void ListDrawAllSprites(List *list, IsometricMap *map, Camera2D *camera); +void ListDrawAllSprites(List *list, IsometricMap **map, Camera2D *camera); void ListActAllSprites(Game *game); #endif diff --git a/game.o b/game.o new file mode 100644 index 0000000000000000000000000000000000000000..0af0ca519ecb592337a2ab488a3f1c5133f92e30 GIT binary patch literal 5256 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

)j=?=2SI&zso)5@lLI}<}~r@%H3 zn`f+i*6c_g>^qzqFxN=Lvza$&MpX-zNp5d8Gk7GE9Z0riGT9^*0nFNw;I+szHLso10w;gg;gkMcR&dqNNgw=ykNsA0PQCN? z``{x!_?JY1^~SB!2mh6VQ>m2e>L&weUVmN`rHt60!zbmF3Qk8#;-4tEYCl9lL?b&5 z_@w+61y|$wst^7n1t(k5&QBGbe(aI>?-g9N|92m}^f;8!WE`ZOS%K4>8}Lc|uRii0 z`N)TGpHcJL-z0Fa{a1YCcl*fqE4YSvq@U*%oa&>*-&AmNS>oF$d1&NM2%p41R&X_s zHKMM{b>O%piTc?zGjv(-m_hmZULANg<5q9zZLms zK+AR2QBcrmy&LgKyj8(f`CSUG%AZtlRengpRr#MNxGMiM1y|+6@QoVfi$2-f#X#cn zossn5@|`j2!R7tRqPeq!R^kMDE9>;9I2KJNtOSdm$mLixn{kNV%;2Dz z1}~kl%qZTH+xe{`=#%Mu6xYrWE~K;2Axq||<9&3S$R+$=eHhwQvPF4VwG|ViIT26E z5anHx>{*N`_pw#P8O+fkLK_nGk+u)%isQ%Re^Wd!a8af~InDV6TT*WCoxd3@viZO2 zw?da}s(S(?lk*=YLTTQ&)+^wVev2YQ!zBL&o-y)IZPI_)?*UVeRk;bFuVOUz%60*x zI_C9X>W9Hon~cB2-oSutdi5v8{MV$Q=)L;13#;WnCLTDi3q8s|l~SoM^IvUlQi;>0 pgBB5v(Ke)cy!vF*n|na)j7U_MCtx0u*ZOMu*M$ET8B>~9|G$=TrLF(~ literal 0 HcmV?d00001 diff --git a/isometricMap.o b/isometricMap.o new file mode 100644 index 0000000000000000000000000000000000000000..d2ea53a76ca425429a2d779a8b545d5ba1d2b1c1 GIT binary patch literal 5632 zcmb_gUu;`f89$D_&Oq9mOr3;SHH@@D#yU4Coz!fMx`fl-O3fN=wbn^=!L@Jxtce}j zH!MX9M5L>@Tr479=+iV1Jog2pA)+-2ne0t@@DNNE>VqGG3SQ>Cdq@YneO?TS>_97`B4ddY&sRmb%DC+tELk* zotNV-f5#c<+Ku?Ye#jpX@=xqaz6bKXLjI`f@>*rCMy_DEeDRaIvqGSoiW%2d%0tn& zmJD-cx!oaQXW=i9Qvw%j2$k2Ig}R5uJ?w_UDsv62avrtrqulhOv(Qp3cPJ*UQ8vU5 zLvaagXh4`UubRsZq)27W;q?k%g#=U6t!IVu9Bm|J-Sn!N{j*u_{40qe$91!OpnJs_E^=^WmGext(fV$jM>R~-=#R%?z3 z1gk}7sMFv8DmSlTY%Fs|`+ zXJz>xUyjs1YCFp=Zw8Q0>XGV*@z15(#@CmyUHi7tjngBv{AWh%`LKKRQdD-oU(RgX zncj5LEy7J#gyix~ogSI3mXBoTw}NtJk%j3R{NZbO4OUGjO&->9puKps=OopX%(%}* zKYIggSnEo~@fw85bIZcEhC2zaY8Z9mq*cr40rA>klL#QM@eSyZ_(MoM zu8>!SS>zG2cV>ND(>fzJn>Sog+S_>NL|B8-*5)& zr*T&)6@G)lXlbgx71V9xyCOW{ErJTfaPD3f?b|?fGMNZgCX-whut??|4U;sbUY;&Z zfF1H1=h$>+k=bs(j@MuVqD_<=4u632Nl7LKd3SJWD-DpAf|MFh5PsY%*a)@<)Y_F) zj7lVz)I79oy5fe?dl-lKx^X3jZ;9kl8~b<-;|g`0aF1Lt4lNr${#YRm4_Q^VRVS!u z4lel`po>6w9srrk=G%9T%a=d1zPP~J@*YE*h(^4R?ZvGJb-Kmdw>r%Vr!S#MS@0I3 z>e0yyX1T&QKL>F&-TZ@0V*{TFc^Q;D^%dGQBURI7GWq>0M%nRX<2%YyF-Z2jmQBU* zsr$)`9vLU{7)WKpyRoqy?jXdWFWUwVo4*=}7f{>>=~~dY?tz%|O7mc>i4vhw55`(2 z6&#;Bnr?k*esVK1KfB2c=Y>!4aoqkCcz3=tNH^~8u6;MX;dI@H^rk$@yEWcYM^_bE z=7xTHs1J7F6NK+=+x-RA7l8+FRrNJfk*QP4H)l_g>#q2n($8D7&ryCk8qi{w;(l=*?-k~LvvZ7b*J*o8N&q5xpy7@j$8OU)@jDRy#T z;JHLk`oeVHo=)`jCBKpEeWq_(kbOTqd^p*A0mZupCC2x4UFjIuyNAz5qrd8al;o$B%vGATOvleX z{`VCB1wY>wY+-*+@t?<@o__Rjgd}MHcNG6!nmzm1Jo`(E|6V}<_nv-3@%Q*+i2m2( z>pwF7MslA0kA(dMpaj{)n4*`*AC&V%p8G9moghY4j&)Ccpw@euwzeReQJT`=!OLJ5EL^8%Ljpyha}FlpJv@$6t` zDw$=ceB`P8xXmUr6BC6jJ6*`+&RR3}bkSnN!zDYDy*Qj5yEr_O8J`F!4P+*=XGTWQ zy(bFAv*Q!iaXY|2Y1xFHC>AD<7mJxoLxs|~JzmHMgocWR*U{hsES;a)2KAYHrBIy6 z4HOE++;~1?Tcv9{`h;dC@LevAY$bX+5+XEia@>-!gXKgLb&eh%OPC%^>0GB?(5YMuKRjDgzLVhAKo;ypSrJ~ z2;sV~S+aC#(#~AKY!~G`rdLI4B9pYy#4MT1*cq0*P%5!xu^@?TVRF*SgO@MZRubR3 zXGE7PdNe`TxgOV-%%NHH^MNeBPWcLMqp67`6Gq!jU%y0g|A8W7*;Vn zDG!m0F+EyKNZ?AtWT$KyZZNb%N^=+Vq}g!japyVf4jX&<=swtGd8F8CzAFF k>yyoJ?E$f)`{>Qsp^*O}l98L+>BrUoYi(g=>lN1jACH*B6#xJL literal 0 HcmV?d00001 diff --git a/isometricRenderer.o b/isometricRenderer.o new file mode 100644 index 0000000000000000000000000000000000000000..77a4902632aa4d326039010619bab9336c143047 GIT binary patch literal 2960 zcmbtU-)mcS6#w3&b{Vd_sZ1Sgxa*6orMtA74|YRMZNKezVC$@_`k=Tpxmlyl4{mO7 z6RLx&vde8p9_L>mBC-b`6a;CzYC92$l7}ck@=!;s1(o;^M2+X%`~4=jw+Rk+;G1*K z=X-vA&pEko(Wl1)l0*baxo3bDBzqo=mR3X}XPB617^%c#! zl<#YKH1mMlEeH$&!?X%fUEii*NWMW!OXq^`EX!7_d#H$H6uU0t`zJ%luf zb<+_@!@7y#c4}kt0Mz3I9;mx9L(n}uhnaPo*%Gs#4Kb^mS;k+3x$wtg71zI2+& z%r(WNWyz-HGqfTv{`gO$Vbir{<-@eJ&~4I+^h=kSsz@d+fobUsU6Zf952l3zvtO>? zf=Ya2V^)57ofh4B?4FJTZubXTBl^QLqR*WX71?#Rbm$9ocU~kFVMxp_YybfH;dZ4O zWQc~La*s-EV%8h-+quqR>;k^ro-9Kk>l?mQ%%WR1y_>Wat#k-rU%@Af9f0?2!MKQL zh1#aIuVCAJUXd>0w)r1>vAKIM+Lz|+39K-S6`56po(8a|4qLh7^}z>;|E9Z29p1AE z?-{0LdGRQ0j=M=6EUS)XNnX7DH(C}YbD_9jzV4lN$sk2iPrMDx~UlqejtIBYZKu%It1Qj6Aw5x{CW?=kX_{W#-0lR zf^EORh&$iaT`u>7cAv-IsTD944!+w@rvPY&KM6R-5&q750E>07H#^`Y>7Sk&Bb_En zvUwv%aJ=WWOGaMT_FB3-&mkX z)_>tQ8R!^-K)3_gO@YtjK!6bMh9htT0{|foBX8m#@&)qSf9ApWd+ZgEkuV$&>F8t5 zZwnXwCu;6;%81SaH*}ZJ2}#%HqpATNBWgTqM2R|^%Mn%2xJoRON@;1hOJ@vCg`Gc< zGorEAxPCF6SF?I1tLesN@WDvh+$#w^n$mbBcgGZP$5vtwy%ga}A2!TGyzNco2uNrW zX(Fyr<^c;FzZW?A;!KbZyNo;n9C1DdjuMjerbOUAH#Va-6;D*v#DF&Yk=q z&Db^=rUfB_pda<4A3+dAKQf4%wP?49*dL-32+fZIWs5e~UDI>H6kC%mV@uhL(f-E(FaFfehkx$i#dDR* zkCXH!G`GqbVd7WvQeT7@dm}=7-0Tq6upBpI z^?m7Z?dvaeIEqFV=ahehs`1hLWYlpHeX5nb)p*IItY{rRS7U`=d^#7KI4l;bWLV`z z=|&ifLohy4F04`qs_`P7K%9-Xy`ia`

Oz_|_|h%?%BOGpYsU+(%XD?T}JZ71(lu zVpHoR2tD|XHN1jVCJ=@H$K2gU6iQC!zC~gp3(62D{oCZ%OFeNSPrALZ_nb!hoST36 za+oepw+&qz8I0pPDJZsPNbl!dSxoc*uB?b2lUdSrPdy^cMB{an@VokT-qRD;F3!!w zB$pE+kr^Yr6j5i4XU1lXw)j=@Il)U8CPh|^I-`24Jt#7)mdrK7wSY15Hhnv!RwY|= zh1&4YjB!YKnARfdc%j2vwdf8Z)5o}xE$i6bSB;GmFXA4m+M zy{k_1jVBIeQH)ol+QE3`wkq#!*it_a{H@{<)6#M@9UiN?f@qU6-yD2tK3QtuV{el-;6(=A@} zNpF@+Rf0#$a7v{x@v&Fc%TuM7r^<|x>wnJ9qSKZ<%MRl%8GEn`^TQ)k`!BUGHW@o& zvfW)>PeeKfjux_RA=23y-5iZ==qw1f^Zcew(b$%C3T6w)7M~0XwYz74Q6H9pwa@^q zkP8c(?PGz{;lS$FMWKt-8WF-pGtp{8C%!EFTCi*B!uW7YFhNR6ZbC-1ACuMza-jhG zBfyD1!&H}lT$f(}PE^KJmw!^1zYCn`F-%&XZNx7FC+f$f<-xr|Awp1<2IwRmye@A^ z1f>TdYC2H~sCK{2HWRiq{pCYVMLW(hL7kR+^hGTRdx!?^#ZT=7Kws;Lx)QdLMl<~_ zO214iNYt6uoiyO*B^-pPEM{3J;7_6+M53;=9-;v}uW(UM!jMO^xUVSvuav&1FJW)Y zqyO$a_=of0m*>I1od^GZ9vuI&G|Qi*Q+YRf6hs{R-S>C`vdmVwv!$b z+S`+^M`yQ1eiIq%Kq_Ogr>vxFJDc`d+2igB&Gpz0C73!}7xyO<={mDLdz_d(c{^jd zPAb`*$dShbskBAeW<<~~+jfRhSvqXquh(to-GN-ra$rEUM1O+tR-miz&Po~uNQ7(0 z8=~t*BO86fA8y+0Kw4b+B9|QB^J*xkJdGq|hgX3RP?dQ4& zU*^GoP&gKx3;sa;>Y)U0(9nL~@!;q$jeqXJ+dTMMK!V9}%bJc~NEWRi9!W6@U{&DyRNrQf~{ zc^99lygQV!2k8!TrQyi{Ba0O1ZGLv;tS{s8GgozPMW8kH4M-@cD1;JINM4y}dG~oZsFe+h+Gai3=xsUoH$RT0-0F`)?K-CKc6?H5DK44dVFi;nRQj1hGk_*zU{U U$1=Qq&FoLB2hN2v5Bcr?0%J~(p#T5? literal 0 HcmV?d00001 diff --git a/main.c b/main.c index a4689fc..066d04c 100644 --- a/main.c +++ b/main.c @@ -33,7 +33,7 @@ int main(){ IsometricRendererRenderIsometricMap(game->layers, game->inputHandler); - ListDrawAllSprites(game->sprites, game->layers[0], game->camera); + ListDrawAllSprites(game->sprites, game->layers, game->camera); EndMode2D(); diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..3bf089fa5ff72cb0fef9a8a64b71d7a440ac578c GIT binary patch literal 2984 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 literal 0 HcmV?d00001 diff --git a/sprite.c b/sprite.c index 6c31db1..251820f 100644 --- a/sprite.c +++ b/sprite.c @@ -3,12 +3,14 @@ #include #include #include "IsometricMap/isometricMap.h" +#include "IsometricMap/tile.h" void SpriteAdd(Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, int y){ if(*spriteAmount < 100){ (sprites + *spriteAmount) -> texture = texture; (sprites + *spriteAmount) -> x = x; (sprites + *spriteAmount) -> y = y; + (sprites + *spriteAmount) -> z = 0; (sprites + *spriteAmount) -> destX = x; (sprites + *spriteAmount) -> destY = y; (sprites + *spriteAmount) -> hasDestination = 0; @@ -20,15 +22,18 @@ void SpriteAdd(Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, in } } -void DrawSpriteToWorld(Sprite *sprite, IsometricMap *map, Camera2D *camera){ +void DrawSpriteToWorld(Sprite *sprite, IsometricMap **map, Camera2D *camera){ // TODO: Nach y sortieren, bevor sie gedrawed werden // Wir müssen beachten, dass sie nach den unprojezierten Screen-Koordinaten sortiert werden müssen. // Macht es vielleicht sinn den Sprites auch einen Vector mit ihren Screen Koordinaten zu geben? Vector2 pos = {sprite->x, sprite->y}; - IsometricMapUnproject(map, camera, pos.x, pos.y, &pos); + IsometricMapUnproject(map[0], camera, pos.x, pos.y, &pos); // Also erst ab hier sortieren, mit den Werten aus dem pos Vector + + pos.y -= sprite->z * (map[0]->textureHeight/2); + pos.x -= camera->target.x; pos.y -= camera->target.y; if(sprite->selected){ @@ -38,7 +43,7 @@ void DrawSpriteToWorld(Sprite *sprite, IsometricMap *map, Camera2D *camera){ else{ DrawTexture(*sprite->texture, pos.x - sprite->texture->width/4, pos.y - sprite->texture->height/4, WHITE); } - printf("%f %f \n", sprite->x, sprite->y); + //printf("%f %f \n", sprite->x, sprite->y); } void DrawSpriteToScreen(Sprite *sprite){ diff --git a/sprite.h b/sprite.h index ddc0c65..5e4702a 100644 --- a/sprite.h +++ b/sprite.h @@ -7,6 +7,7 @@ typedef struct Sprite { Texture2D *texture; float x; float y; + float z; float destX; float destY; int hasDestination; @@ -15,7 +16,7 @@ typedef struct Sprite { void SpriteAdd(Sprite *sprites, int *spriteAmount, Texture2D *texture, int x, int y); -void DrawSpriteToWorld(Sprite *sprite, IsometricMap *map, Camera2D *camera); +void DrawSpriteToWorld(Sprite *sprite, IsometricMap **map, Camera2D *camera); void DrawSpriteToScreen(Sprite *sprite); Sprite * SpriteCreate(Texture2D *texture, int x, int y); diff --git a/sprite.o b/sprite.o new file mode 100644 index 0000000000000000000000000000000000000000..be4b53f8215e3ee034db79fb76b6aee4d5315bf0 GIT binary patch literal 3560 zcmc&#-EUMy6rbHKuwv;hgohIRxGxx#vgx7^XpG*ayD%hH5m-b8%69i+fo-?my&J&< zG$|OyYh(We9*pr#<44l);n#{QjGZW~-&sB%$S zMoW=fYUarh7_){TnIp<*aU`eu&1ZQHhk#zm?UFT=*%QY31Ikuq6FIcujG zk{+c`*G&?zm#$f`(HS4TfRdMP?iV-+o>R$H#tu+IiRZq38;-=}#IFwrX1}hYnlq>- z%)R{8Qsme~-3g4P$O%Uj9t>~rtzm?t*yO=Ajmzc8r7vJQ@i`mEz>?y}E7J+_T~f?% ztJPR7A+AH*fE5z8tvL$G438cNL7z`fRD+F(U_Tk@Dif8W@u+PpQ6pVdj}%6FsdsYm zGj~yu7sFhv<>E-#O+>}sXj1%;6gOm9_{eqRmk$uqXSMMf+LdWBhX`v-Oi6*&1nTDP z`hSR2eA^u87`9i*@g3e#an^V{7_}B(O&mL3KVEdWu=5KQ?)FyP{l?`P=gg;ScQ?eW zx4TIxV0ZG?V~1wDOf`9+8EP)G2_tM-HgVsNBAXptoCv$7m(4~hZ}optyC(Dajr1dn z&D}KF+@n2sGvy%-51W>GSkK*8>K+b8#gV9(^kw0AwQ-xEOOIbglomvK{!6+A2|i)BU9(r)0$AvBzWGJL4rejbGfgE7twQqY5TXYHjFI zbb4U+J)dSl#>#|+(5Y?q1{QepAPby}2DY}Z3yz_ljzj$&_~-yjf8^VlNHa$C0aw9qL1bTuXzN* zS~Lo&js0G0v4p+R>fJ3Qv#=be-{qzzzT7J?$_wSq-?jiCzUIlj1KWY#il0~k?_B{u z0i5i2P?6AN-Y~w7PWaynm$?FV5xtdPRvflZJ60^q4oM-A%dz2-Q)Edy^M(f(Dj+EGeTAPUlAB zl@;)S$`cLuHSynV!kg{mp*s`7T&>>6KK;J1lGia$u{@Y+col3jbXU0_XvdX7kR>we3*;YtY3bT%Q!Z;NR zZO$9m{TNAC!K_o^k0@Ln3x#6v2c%Z~{=0ya&3~&Ohc4M{J`%yat&&4`nf&v?P2iC2KmmxPdf37!T Qv6cR!ir;BghV0k>2eN}=IRF3v literal 0 HcmV?d00001 diff --git a/tile.o b/tile.o new file mode 100644 index 0000000000000000000000000000000000000000..ec204adaedf6210815518221e71da3ff50430c83 GIT binary patch literal 928 zcmbVK%}N6?5T32|_oO$$%l4##4ZBq@9wboOUc_6$>+TvgHOpKkDP~!B z`O&PTc#**F6PW-@n+8}`=D8@4D@rLCUSrtEBzxBQp=eoEmzAjH(mU?2#1S^o-M5@Z z?qCD0F)M0-kvMlgTvh$x_8+5U2mQbOXV^=7M(DP24XAFLIp5?`D8f L8}4*A$$kGfOw%{6 literal 0 HcmV?d00001