From 358d5e34818d081d98dbdbd07a5e2c186f43281a Mon Sep 17 00:00:00 2001 From: JanEhehalt Date: Tue, 22 Nov 2022 01:13:18 -0800 Subject: [PATCH] Bug with 2-dimensional Tile Array in isometricRenderer.c --- .vscode/settings.json | 3 +- Makefile | 10 +++++-- inputHandler.o | Bin 3888 -> 0 bytes isometricMap.c | 62 ++++++++++++++++++++++++++++++++++++++++++ isometricMap.h | 24 ++++++++++++++++ isometricRenderer.c | 35 ++++++++++++++++++++---- isometricRenderer.h | 7 +++-- isometricRenderer.o | Bin 1792 -> 0 bytes main.c | 10 +++++-- main.o | Bin 4488 -> 0 bytes spiel | Bin 21216 -> 0 bytes sprite.o | Bin 2024 -> 0 bytes tile.c | 2 ++ tile.h | 11 ++++++++ 14 files changed, 152 insertions(+), 12 deletions(-) delete mode 100644 inputHandler.o create mode 100644 isometricMap.c create mode 100644 isometricMap.h delete mode 100644 isometricRenderer.o delete mode 100644 main.o delete mode 100755 spiel delete mode 100644 sprite.o create mode 100644 tile.c create mode 100644 tile.h diff --git a/.vscode/settings.json b/.vscode/settings.json index 23106ef..ab7a5ec 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,6 @@ { "files.associations": { - "inputhandling.h": "c" + "inputhandling.h": "c", + "isometricmap.h": "c" } } \ No newline at end of file diff --git a/Makefile b/Makefile index d2ca802..38630de 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -spiel: main.o sprite.o inputHandler.o isometricRenderer.o - gcc -o spiel main.o sprite.o inputHandler.o isometricRenderer.o -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 +spiel: main.o sprite.o inputHandler.o isometricRenderer.o isometricMap.o tile.o + gcc -o spiel main.o sprite.o inputHandler.o isometricRenderer.o isometricMap.o tile.o -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 main.o: main.c gcc -c main.c -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 @@ -13,5 +13,11 @@ inputHandler.o: inputHandler.c isometricRenderer.o: isometricRenderer.c gcc -c isometricRenderer.c -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 +isometricMap.o: isometricMap.c + gcc -c isometricMap.c -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 + +tile.o: tile.c + gcc -c tile.c -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 + clean: rm *.o spiel diff --git a/inputHandler.o b/inputHandler.o deleted file mode 100644 index 91d79f0d8cb5dfb09192229eb5c79b8e1b6414cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3888 zcmbtW&u<$=6dot0H6`gfsE10WU?eCla^0jUulSvRX`&;B)PIKLZn>v6-mQZ<~y zn&FIA3}>i3=;$j|_)Z$y)zYM9m5icZt!X{+t`=-8)g!7Yya)!j&zJ0zU=-QsrNWUG zMRgChU~i-lxXZj68O7d>nK4)DGK!;BqnHR9&N5|Z-Qr=?rM3A7l!qIlnUSZEuo0|j zV@p(#UiZr*Y=orGqnZ}h>)PIxns#Og$`c5z9az$4=fqkB8ev+LT*C1#@>?RMT#SdD zTTAzz3zYBFC$$HwHSJ|`z{1fwG6ah%a#^7kE9l2sq4LW{u}~q>TEA1LU2r!5N6%;T zC2jsQH>tJd_)g&eekDZ5aib!hh*Da20mc;j6kWOrhB)6TDLW}*ICAHEEDW#6kecC&z{i4%Fx>9cS z7FwU`8mh>isH0MK=;4NH%H_x@Ouoe;C?MZ=f*Px*MF-(cVU)@U@oT6QWg zHX5u!rSvlAwo^e(4Tt)MXBb_b zjFo_O(gWGy4lM9Vf(0&z1G~Dmh8F1dJwrGiNQy{I-yZ&=<9PR$&JQ}sh1-sBD`WRD zN_)qzFtZm38WZ+e+-7Ol=Q=y>0QV8*wgV_Z_OQ{;*xB}rftvUW?lB5#e_HY9wGg(8 z9@xARC7>OS`-M2~ijCtn5%!jk|5+dWW5N+f=E3)lu**LFvp)EBADpGF>4I$}t<;p6 zi%qahwvabZ0b>KEJp^qyn@`*6ti?{{xqhr*+gWQkXXf)}ik-+MFD1+g`*CZ+oHCOz zk4)#%w%MObu?yzRcs7|!xxr86-!^AXWG`7*=439JG2csP%x1Ktb#BTWOj~B2@`gO` z4s^zDZ$6@n1v%`4pHc8FG?)Gt6db27aqJt!8-LY>Ilh(V(*Gv~r}k~)_Y_=>zYPsa z;*Eb);J7kq6&e3W#s5hK|5?G+x~?Js3F70gkc{)Cf_EwSb%D!u$;9P`;;+WJso-jy z?|tG_6@N9(Lj_mk{OJ>Cx41vvy7nlz8Yd=jgcDO<*QDaFp3AHce#;XFYd|`Y2#Jg@ z@i%<%gb)6Mz%k%+AkQm8a|q&#E#Z2c|F&@XJ~->a<@<)k@-rDbIZmUUbI0>?mNTc4 zG26Usvsfx=Cs}MfpJ%aL)>S65nT% + +IsometricMap * IsometricMapInit(int x, int y){ + IsometricMap *map = (IsometricMap *) malloc(sizeof(IsometricMap)); + Texture textures[10]; + textures[0] = LoadTexture("assets/grass.png"); + textures[1] = LoadTexture("assets/tower.png"); + map->tileTextures = &textures; + + //Tile *tiles[x][y]; + Tile **tiles = (Tile **)malloc(x * sizeof(Tile *)); + int n = 0; + for(n = 0; n < x; ++n){ + tiles[n] = (Tile *)malloc(y * sizeof(Tile)); + } + + map->sizeX = x; + map->sizeY = y; + + int i = 0; + int j = 0; + + for(i=0; i < x; i++){ + for(i=0; i < y; i++){ + if(i != j){ + Tile tmp = {0, i, j}; + tiles[i][j] = tmp; + } + else{ + Tile tmp = {1, i, j}; + tiles[i][j] = tmp; + } + } + } + map->tiles = tiles; + + return map; +} + + +Vector2 * IsometricMapCalcOffsetForTileAt(int x, int y, int textureSize){ + + Vector2 offset = {0, 0}; + + offset.x = x * textureSize/2; + offset.y = x * textureSize/4; + + offset.x -= y * textureSize/2; + offset.y += y * textureSize/4; + + return &offset; +} + + + + + + + + + diff --git a/isometricMap.h b/isometricMap.h new file mode 100644 index 0000000..edadb8f --- /dev/null +++ b/isometricMap.h @@ -0,0 +1,24 @@ +#ifndef ISOMETRICMAP_H_ +#define ISOMETRICMAP_H_ +#include "raylib.h" +#include "tile.c" + +typedef struct IsometricMap{ + Texture *tileTextures; + //tiles -> two dimensional Array + Tile *tiles; + int sizeX; + int sizeY; +} IsometricMap; + +void IsometricMapAddTile(IsometricMap isometricMap); + +Tile IsometricMapGetTileFromArrayPosition(int x, int y); + +Tile IsometricMapGetTileFromWorldCoordinates(float x, float y); + +Vector2 * IsometricMapCalcOffsetForTileAt(int x, int y, int textureSize); + +IsometricMap * IsometricMapInit(int x, int y); + +#endif \ No newline at end of file diff --git a/isometricRenderer.c b/isometricRenderer.c index 7d6ebc5..8996691 100644 --- a/isometricRenderer.c +++ b/isometricRenderer.c @@ -1,11 +1,12 @@ #include "isometricRenderer.h" #include "raylib.h" +#include "isometricMap.h" #include //TODO: Isometric Tilemap Struct, which can be scanned for clicked Tile // General coordinate translation function -void IsometricRendererRenderMap(IsometricRenderer *renderer, int height){ +void IsometricRendererDrawMap(IsometricRenderer *renderer, int height){ float originX = 0.0f; float originY = 0.0f; @@ -15,12 +16,12 @@ void IsometricRendererRenderMap(IsometricRenderer *renderer, int height){ int amount = 1; for(i=0; i<=height; i++){ for(j=0; jtexture.width + j * renderer->texture.width; + float x = originX - amount/2 * renderer->texture->width + j * renderer->texture->width; if(amount%2 == 1){ - x -= renderer->texture.width/2; + x -= renderer->texture->width/2; } - float y = i * renderer->texture.height/4; - DrawTexture(renderer->texture, x, y, WHITE); + float y = i * renderer->texture->height/4; + DrawTexture(*renderer->texture, x, y, WHITE); } if(i < height/2){ @@ -31,6 +32,30 @@ void IsometricRendererRenderMap(IsometricRenderer *renderer, int height){ } } +} + +void IsometricRendererRenderIsometricMap(IsometricMap *map){ + + float originX = 0.0f; + float originY = 0.0f; + + int i = 0; + int j = 0; + for(i=0; i < map->sizeX; i++){ + for(j=0; j < map->sizeY; j++){ + Vector2 *offset = IsometricMapCalcOffsetForTileAt(i,j, map->tileTextures[0].width); + float x = originX + offset->x; + float y = originY + offset->y; + + // TODO: Komischer "Bug" + // map sollte ein 2-dimensionaler Array aus Tiles sein + // -> 2 Dimensionaler Array aus pointern + // wird in IsometricMapInit erzeugt + int textureId = (*(*map->tiles[i])[j]).textureId; + + DrawTexture(map->tileTextures[textureId], x, y, WHITE); + } + } } diff --git a/isometricRenderer.h b/isometricRenderer.h index c774421..148d444 100644 --- a/isometricRenderer.h +++ b/isometricRenderer.h @@ -1,11 +1,14 @@ #ifndef ISOMETRICRENDERER_H_ #define ISOMETRICRENDERER_H_ #include "raylib.h" +#include "isometricMap.h" typedef struct IsometricRenderer{ - Texture texture; + Texture *texture; } IsometricRenderer; -void renderMap(int width, int height); +void IsometricRendererDrawMap(IsometricRenderer *renderer, int height); + +void IsometricRendererRenderIsometricMap(IsometricMap *map); #endif \ No newline at end of file diff --git a/isometricRenderer.o b/isometricRenderer.o deleted file mode 100644 index 8f76c4528d6ee63d0004c871d8c63e72a3e8a3c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1792 zcmbVKK~ED=5PsX1wko*AXhMR~9t;5j8;Twf45@(!s}X`I#)HIc%OXVDlI=Ev33}LQ z+^ia|{0a^x#v_zQiYGKZRMSHbXh1Q>^wJn(owxg5DNBtBlT2sko0)I6Gw(6JHsIhm z#Dqh=XfI+YLMzTaKWMr^REKI&fj{$WOw>Q$5VhSdQC~>wiPR+jW2L~?<1OZFuj35q zS;tw+Gp)dQ$>P+aT&+ zM1vEJ>t0cJi~23EaoML2`1DWx`rB=?9Z^g9HJs%PobACm{`vPmrILYDG+li3;4D30Max`Thek9gjt1RhbTt%Fzi~ zkrg3~uGldvHzduXenon4Q=U^3ifmF1lMe(TyCC|ToE^juJ`vcHsb)Zag!p_!l|o=u z#j;b(Q{)**P=Oo?6Ot++Ary}zAsmZDBDKD_))N=mpuoD zH&L9uGg^*5+6U2u9d4tXhwTs0`Q-gn3Y$;(D}~Kxwi}YnudJ&f52K3MYp+6$2h?8f zrGVeY!S=`C5IBU>-rr1tAStexture = &isometricTexture; int spriteAmount = 0; Sprite cursorSprite = {&texture, 450, 225}; @@ -29,6 +31,8 @@ int main(){ SpriteAdd(sprites, &spriteAmount, &texture, 0, 0); + IsometricMap *map = IsometricMapInit(10, 10); + SetTargetFPS(60); while(!WindowShouldClose()){ @@ -38,7 +42,9 @@ int main(){ BeginMode2D(camera); - IsometricRendererRenderMap(&isometricRenderer, 50); + //IsometricRendererRenderMap(&isometricRenderer, 50); + + IsometricRendererRenderIsometricMap(map); int i; //int length = sizeof(sprites)/sizeof(sprites[0]); diff --git a/main.o b/main.o deleted file mode 100644 index 6f1bac3969c1b60f64c7abb25601e86aa5caea09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4488 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 V2_sSa*N>PV|3H8aXB~c2{vW&RE0h2L diff --git a/tile.c b/tile.c new file mode 100644 index 0000000..240246b --- /dev/null +++ b/tile.c @@ -0,0 +1,2 @@ +#include "tile.h" + diff --git a/tile.h b/tile.h new file mode 100644 index 0000000..62c052b --- /dev/null +++ b/tile.h @@ -0,0 +1,11 @@ +#ifndef TILE_H_ +#define TILE_H_ +#include "raylib.h" + +typedef struct Tile{ + int textureId; + int x; + int y; +} Tile; + +#endif \ No newline at end of file