From 3ac62681aaead7d81a2f1e7ae67d17057f29c64e Mon Sep 17 00:00:00 2001 From: Jan Date: Tue, 14 Mar 2023 18:40:25 +0100 Subject: [PATCH] Wasser ist animiert, ist aktuell aber noch gehardcoded in der IsometricMapDraw --- IsometricMap/isometricMap.c | 41 ++++++++++++++++++++++-------------- IsometricMap/isometricMap.h | 6 ++++-- README.md | 1 + Textures/textureatlas.c | 20 +++++++++++++++++- Textures/textureatlas.h | 1 + Ui/uiContainer.c | 2 +- assets/tiles/water.png | Bin 6431 -> 5849 bytes assets/tiles/water2.png | Bin 0 -> 5837 bytes assets/tiles/water3.png | Bin 0 -> 5826 bytes assets/tiles/water4.png | Bin 0 -> 5837 bytes definitions.h | 5 ++++- game.c | 2 +- 12 files changed, 56 insertions(+), 22 deletions(-) create mode 100644 assets/tiles/water2.png create mode 100644 assets/tiles/water3.png create mode 100644 assets/tiles/water4.png diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index a53f1a1..029d545 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -7,26 +7,20 @@ #include "../Sprite/sprite.h" #include "../game.h" -IsometricMap * IsometricMapInit(){ +IsometricMap * IsometricMapInit(Game *game){ IsometricMap* map = malloc(sizeof(IsometricMap)); int counter = 0; - map->tileTextures[counter++] = LoadTexture("assets/tiles/grass.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/desert.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/desert_palm.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/tower.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/bigtower.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/grass_selected.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/ice.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/water.png"); - map->tileTextures[counter++] = LoadTexture("assets/tiles/empty.png"); - + for(counter = 0; counter < TE_TILES_LENGTH; counter++){ + map->tileTextures[counter] = &(game->textures->textures[TE_TILES][counter]); + } map->width = 500; map->height = 500; - map->textureWidth = map->tileTextures[0].width; - map->textureHeight = map->tileTextures[0].height; + map->textureWidth = map->tileTextures[0]->width; + map->textureHeight = map->tileTextures[0]->height; map->worldPixelWidth = map->width * map->textureWidth; map->worldPixelWidth = map->height * map->textureHeight; + map->timer = 0; // mallocating the twodimensional Tiles Array Tile*** tiles = malloc(map->width*sizeof(Tile*)); @@ -135,6 +129,22 @@ void IsometricMapChangeTextureIdOfTile(IsometricMap *map, int x, int y, int id){ } void IsometricMapDraw(Game *game){ + + game->map->timer += GetFrameTime(); + if(game->map->timer > 0.2f){ + game->map->tileTextures[7] = &(game->textures->textures[TE_TILES][9]); + } + if(game->map->timer > 0.4f){ + game->map->tileTextures[7] = &(game->textures->textures[TE_TILES][10]); + } + if(game->map->timer > 0.6f){ + game->map->tileTextures[7] = &(game->textures->textures[TE_TILES][11]); + } + if(game->map->timer > 0.8f){ + game->map->tileTextures[7] = &(game->textures->textures[TE_TILES][7]); + game->map->timer = 0; + } + int windowWidth = GetScreenWidth(); int windowHeight = GetScreenHeight(); Vector2 topleft = {0, 0}; @@ -164,11 +174,10 @@ void IsometricMapDraw(Game *game){ continue; } else{ - ; DrawTexture( - game->map->tileTextures[game->map->tiles[i][j]->textureId], + *(game->map->tileTextures[game->map->tiles[i][j]->textureId]), game->map->tiles[i][j]->offsetX, - game->map->tiles[i][j]->offsetY - game->map->tileTextures[game->map->tiles[i][j]->textureId].height + 32, + game->map->tiles[i][j]->offsetY - game->map->tileTextures[game->map->tiles[i][j]->textureId]->height + 32, WHITE); continue; } diff --git a/IsometricMap/isometricMap.h b/IsometricMap/isometricMap.h index df4f296..76d7fc3 100644 --- a/IsometricMap/isometricMap.h +++ b/IsometricMap/isometricMap.h @@ -6,7 +6,7 @@ typedef struct IsometricMap{ // Array with all the needed textures for this layer - Texture2D tileTextures[10]; + Texture2D *tileTextures[TE_TILES_LENGTH]; // twodimensional array of all the tiles in this layer Tile ***tiles; @@ -28,10 +28,12 @@ typedef struct IsometricMap{ // pixel height of the entire map int worldPixelHeight; + + float timer; } IsometricMap; // returns pointer to IsometricMap Instance -IsometricMap * IsometricMapInit(); +IsometricMap * IsometricMapInit(Game *game); // For Rendering: calculates coordinate offset for a single tile at arrayPosition x y // Only works for tiles with texture width == height (and for 22.5 degree?) diff --git a/README.md b/README.md index 04c19d8..d5f7de3 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,7 @@ Allgemein: + Maps in eigenen Dateien speichern + Parser für Map-Dateien + MapEditor ++ Batching in Raylib für die TileMap ## Anleitungen diff --git a/Textures/textureatlas.c b/Textures/textureatlas.c index e5bae35..5a2650a 100644 --- a/Textures/textureatlas.c +++ b/Textures/textureatlas.c @@ -50,6 +50,10 @@ void TextureAtlasLoadTextures(Texture2D **textures){ textures[TE_BUTTON] = malloc(TE_BUTTON_LENGTH * sizeof(Texture2D)); LoadButtonTextures(textures[TE_BUTTON]); break; + case TE_TILES: + textures[TE_TILES] = malloc(TE_TILES_LENGTH * sizeof(Texture2D)); + LoadTileTextures(textures[TE_TILES]); + break; default: printf("WARNING: TEXTUREATLAS TRIED LOADING NON DEFINED TEXTUREID!!\n"); } @@ -167,7 +171,21 @@ void LoadButtonTextures(Texture2D *atlasrow){ atlasrow[1] = LoadTexture("assets/button_hovered.png"); atlasrow[2] = LoadTexture("assets/button_pressed.png"); } - +void LoadTileTextures(Texture2D *atlasrow){ + int counter = 0; + atlasrow[counter++] = LoadTexture("assets/tiles/grass.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/desert.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/desert_palm.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/tower.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/bigtower.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/grass_selected.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/ice.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/water.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/empty.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/water2.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/water3.png"); + atlasrow[counter++] = LoadTexture("assets/tiles/water4.png"); +} void LoadCursorTextures(Texture2D *cursorTextures){ diff --git a/Textures/textureatlas.h b/Textures/textureatlas.h index 44cb916..d4fff66 100644 --- a/Textures/textureatlas.h +++ b/Textures/textureatlas.h @@ -23,6 +23,7 @@ void LoadEntityTextures(Texture2D *atlasrow, char *directoryPrefix); void LoadMapObjectTextures(Texture2D *atlasrow, char *directoryPrefix); void LoadSelectableBackgroundTextures(Texture2D *atlasrow); void LoadButtonTextures(Texture2D *atlasrow); +void LoadTileTextures(Texture2D *atlasrow); void LoadWorkerAnimations(Animation **workerAnimations, Texture2D *workerTextures); void TextureAtlasLoadAnimations(Animation ****animations, Texture2D **textures); diff --git a/Ui/uiContainer.c b/Ui/uiContainer.c index 6c903cf..25f43f9 100644 --- a/Ui/uiContainer.c +++ b/Ui/uiContainer.c @@ -97,7 +97,7 @@ static UiContainer * UiContainerInitGameUiContainer(Game *game){ position = (Vector2){GetScreenWidth()-50, 2}; for(i; i < ISOMETRICMAP_TILE_TEXTURE_AMOUNT; i++){ UiContainerAddSelectable(uiContainer, - SelectableInit(&(game->map->tileTextures[i]), backgroundTextures, hasBackground , &position, "", + SelectableInit(game->map->tileTextures[i], backgroundTextures, hasBackground , &position, "", showDescription, 0/*String len*/, fontSize, SELECTABLE_ID_DRAWING_TILE+i, 1/*Group*/, 1, 0.5f) ); diff --git a/assets/tiles/water.png b/assets/tiles/water.png index b0ed387a93761e73ffe8b61421fbf41f56bac815..eb23d971dd2a226353b20238d0ce48ebe02f9da4 100644 GIT binary patch delta 2642 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 A(EtDd delta 2734 zcmY+_X*`tc8wc>AXv#=gvNM>%@bJv?m?cXYVoE|}ER~rtBUwV$9F34H6Eg;#M97vb zWf@y4Wle{2I8v6fL`BxZDII_3oX`Ko`P?t>`~F_n@73=Okc;J^I7crz(t;i6VaR}> z3v6#+7BV;@fQ4j*d$VD%@V8%Rerc-Oh>e%JL2-x8;i}hO-Wx%7o{*R}SukCAE3Dc? zWhgGRfJlq5V~Z-&XE~LNI}D_$8i|>{q_Yia`wNneHugHL;m&xQty!*VH$U-_dMOom z;K=hC;nc&;0uxh7PWGKU2QDBoE_2Q;n9-WP+>ocNSbWJ(8*GRMUCvamyT;K`uc^-G;4Y%Wu8-Bf z4t12Tl>bUt_emGN<~j|ei-bIu|3>Ss%vb+tZ5pyO063duc4g;i{kVZ$$TiuHKkmmr zv`XIIbjl{MP02a?;apW~y9JJS$9y0$j7i^L(A#@<`JjP=k(zr8>s_sOafxBz2_I*v z$hw%DRu;}l;64mz>P6W4=V+m^ETg$wMsMA6%A-}%t2g(f_>qaG!x@r`lb0W5JB!Co z=tL$cMEiAG2-X3a#RFM=_I9@wxMcrr(eRTJ*@+1879~xM>2O_s2OKE@zZZ~0wBNSP zK2AKlur2%PagAIh3Vyy46*nCnio$^!35H^X4mr;v)GJPEv8bdIovN8;S(HHS$v&Bx zUBf<+TM`;^{v`2%-M(;Z61b*1_NRP9J@ z2D>7(tE9xhBWpv0*g5?Gl$0P51P)ddBOXOxAMM_ z=%qzwdVoFF)f2G~4_&kOn!gb)ku|n-WHY_-{Xi7IaUtSIf^dA;?j1KrC)m#L$k*{7 z`WZ*R^~^uS{<1n=_F*&rFF`yzHvH7|AJ+2b%8~h;O0~Vz8X+XkcqByirCx?g$K6ru zVSnyUJOCNn41#XV%HE+czqhW6ZV%87uh1nvUsI?)T~ZQHXyW%(cASq4M9zl7&iKo3 z(2#Mw9IfuTAx>m=Y-DN71F1s=M}0axe~%K5)qlw7w7KcUsmmCZHS^~4KHnCJu&x@l z5>#`Dtpj=Pl2%?H&hR~^X%{0yG`h5JjX#?8ypZ+UxV&QMMxmjd$&FO$2VEW)^=B{^ z^HEPrpc%4^aYxHK1T0`|kJI32A^gDcMB%$fa$en5E_PDru5t^@)n`@i_ ztbzG&|+b+IbVL+L+R1g{Wk!BdSoZ+>+_CzM`98U8(x8h)7~nS$lyf z*FuM%amLaR5tfkGG-xu0wfRz9xJT)9Nl}vFuz7Bas7}!1Z1IimXOD!g=j-gz+|}!x zTR%F7&QeI7EkV3UD^;d{8V_kDESH(tQ@FQHjm0zP!AiT=ha

`GVT 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 literal 0 HcmV?d00001 diff --git a/assets/tiles/water4.png b/assets/tiles/water4.png new file mode 100644 index 0000000000000000000000000000000000000000..481f0a5ab4d0d929a05f7c9c359f61e3c36a6e66 GIT binary patch literal 5837 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 literal 0 HcmV?d00001 diff --git a/definitions.h b/definitions.h index b8f901c..b94c3c7 100644 --- a/definitions.h +++ b/definitions.h @@ -26,12 +26,15 @@ #define TE_LUMBERJACK 5 #define TE_SELECTABLE_BACKGROUND 6 #define TE_BUTTON 7 +#define TE_TILES 8 + +#define TE_AMOUNT 9 -#define TE_AMOUNT 8 #define TE_ENTITY_LENGTH 104 #define TE_MAPOBJECT_LENGTH 1 #define TE_SELECTABLE_BACKGROUND_LENGTH 3 #define TE_BUTTON_LENGTH 3 +#define TE_TILES_LENGTH 13 // Definitions for animations #define AN_WORKER 0 diff --git a/game.c b/game.c index 4ae4561..6d3767a 100644 --- a/game.c +++ b/game.c @@ -46,7 +46,7 @@ Game *GameInit() game->buildings = BuildingListInit(); game->objects = StaticObjectListInit(); - game->map = IsometricMapInit(); + game->map = IsometricMapInit(game); //das du es weißt man kann wenn du nicht auf hört was machen und dann bist du leise es gibt was das nett sich rufmord int i,j; for (i = 0; i < game->map->width; i++)