diff --git a/Input/inputHandler.c b/Input/inputHandler.c index 59f7904..9b1cab6 100644 --- a/Input/inputHandler.c +++ b/Input/inputHandler.c @@ -58,7 +58,7 @@ void mouseInput(Game *game){ InputHandler *inputHandler = game->inputHandler; List *sprites = game->sprites; Camera2D *camera = game->camera; - IsometricMap **layers = *game->layers; + IsometricMap **layers = game->layers; Texture2D *texture = game->worker +4; inputHandler->cursorPos.x = GetMousePosition().x; @@ -135,7 +135,7 @@ void mouseInput(Game *game){ width = abs(width); height = abs(height); - printf("Auswahl: x: %f, y: %f, w: %f, h: %f\n", rect.x, rect.y, width, height); + //printf("Auswahl: x: %f, y: %f, w: %f, h: %f\n", rect.x, rect.y, width, height); // TODO: update to World Coordinates float deltaX; @@ -148,7 +148,7 @@ void mouseInput(Game *game){ deltaX = currPos.x - camera->target.x - (rect.x + camera->target.x); deltaY = currPos.y - camera->target.y - (rect.y + camera->target.y); - printf("deltaX: %f, deltaY: %f\n", deltaX, deltaY); + //printf("deltaX: %f, deltaY: %f\n", deltaX, deltaY); if(deltaX > 0 && deltaX < width && deltaY > 0 && deltaY < height){ current->data.selected = 1; diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index 5a5bf94..adddd73 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -19,11 +19,11 @@ IsometricMap * IsometricMapInit(int layer){ map->heightBounds = 100; map->layer = layer; - Tile*** tiles = (Tile***)malloc(map->widthBounds*sizeof(Tile*)); - int n = 0; - for(n=0; n < map->widthBounds; n++){ - tiles[n] = (Tile**)malloc(map->heightBounds*sizeof(Tile*)); - } + Tile*** tiles = (Tile***)malloc(map->widthBounds*sizeof(Tile*)); + int n = 0; + for(n=0; n < map->widthBounds; n++){ + tiles[n] = (Tile**)malloc(map->heightBounds*sizeof(Tile*)); + } int i = 0; int j = 0; @@ -38,6 +38,7 @@ IsometricMap * IsometricMapInit(int layer){ } map->tiles = tiles; + return map; } diff --git a/IsometricMap/isometricRenderer.c b/IsometricMap/isometricRenderer.c index 1482d61..461af93 100644 --- a/IsometricMap/isometricRenderer.c +++ b/IsometricMap/isometricRenderer.c @@ -3,6 +3,7 @@ #include "isometricMap.h" #include "../Input/inputHandler.h" #include +#include // @param deprecated void IsometricRendererDrawMap(IsometricRenderer *renderer, int height){ @@ -56,6 +57,7 @@ void IsometricRendererRenderIsometricMap(IsometricMap **map, InputHandler *input int textureId = map[n]->tiles[i][j]->textureId; DrawTexture(map[n]->tileTextures[textureId], x, y, WHITE); + free(offset); } } } diff --git a/Makefile b/Makefile index 9b17783..9a013e4 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,6 @@ CC = gcc FLAGS = -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 - - spiel: main.o sprite.o inputHandler.o isometricRenderer.o isometricMap.o tile.o list.o game.o $(CC) -o spiel main.o sprite.o inputHandler.o isometricRenderer.o isometricMap.o tile.o list.o game.o $(FLAGS) diff --git a/Textures/textureatlas.h b/Textures/textureatlas.h new file mode 100644 index 0000000..9c843ea --- /dev/null +++ b/Textures/textureatlas.h @@ -0,0 +1,11 @@ +#ifndef TEXTUREATLAS_H_ +#define TEXTUREATLAS_H_ +#include "raylib.h" + +typedef struct TextureAtlas{ + Texture2D cursorTextures[2]; + Texture2D workerTextures[7]; + //Texture2D[] mapTextures; +} TextureAtlas; + +#endif \ No newline at end of file diff --git a/game.c b/game.c index 16dc8e1..c4d14c2 100644 --- a/game.c +++ b/game.c @@ -8,17 +8,14 @@ #include "stdio.h" Game * GameInit(){ - Game *game = (Game *) malloc(sizeof(Game)); game->cursorTextures[0] = LoadTexture("assets/cursor.gif"); game->cursorTextures[1] = LoadTexture("assets/cursor_down.gif"); //game->cursorSprite = {&(cursorTextures[0]), 450, 225}; - game->cursorSprite = (Sprite *) malloc(sizeof(Sprite)); - game->cursorSprite->texture = &(game->cursorTextures[0]); - game->cursorSprite->x = 450; - game->cursorSprite->y = 225; + //game->cursorSprite = (Sprite *) malloc(sizeof(Sprite)); + game->cursorSprite = SpriteCreate(game->cursorTextures, 450, 225); @@ -52,13 +49,14 @@ Game * GameInit(){ game->inputHandler->cursorSprite = game->cursorSprite; game->camera = (Camera2D *) malloc(sizeof(Camera2D)); - game->camera->target = (Vector2){0, 0}; + game->camera->target.x = 0; + game->camera->target.y = 0; game->camera->rotation = 0.0f; game->camera->zoom = 1.0f; game->sprites = ListInit(); - game->layers = ((IsometricMap ***) malloc(10*sizeof(IsometricMap *))); + game->layers = ((IsometricMap **) malloc(10*sizeof(IsometricMap *))); // Test Layers --- int n = 0; @@ -66,7 +64,7 @@ Game * GameInit(){ int j = 0; for(n = 0; n < 10; n++){ - (*(game->layers))[n] = IsometricMapInit(n); + ((game->layers))[n] = IsometricMapInit(n); } for(n = 0; n <= 10; n++){ @@ -74,16 +72,16 @@ Game * GameInit(){ for(j = 0; j < 100; j++){ switch(n){ case 0: - IsometricMapAddTile((*(game->layers))[n], i, j, 0); + IsometricMapAddTile(((game->layers))[n], i, j, 0); break; case 1: if(i > 35 && i < 50 && j > 45 && j < 60){ - IsometricMapAddTile((*(game->layers))[n], i, j, 0); + IsometricMapAddTile(((game->layers))[n], i, j, 0); } break; case 2: if(i > 40 && i < 44 && j > 50 && j < 54){ - IsometricMapAddTile((*(game->layers))[n], i, j, 1); + IsometricMapAddTile(((game->layers))[n], i, j, 1); } break; } @@ -96,9 +94,9 @@ Game * GameInit(){ for(n = 0; n <= 10; n++){ for(i = 0; i < 20-n*2; i++){ for(j = 0; j < 20-n*2; j++){ - IsometricMapAddTile((*(game->layers))[n], i, j, 0); + IsometricMapAddTile(((game->layers))[n], i, j, 0); if(n == 9){ - IsometricMapAddTile((*(game->layers))[n], i, j, 1); + IsometricMapAddTile(((game->layers))[n], i, j, 1); } } } diff --git a/game.h b/game.h index e81c376..3722fc5 100644 --- a/game.h +++ b/game.h @@ -11,7 +11,7 @@ typedef struct Game{ struct List *sprites; struct InputHandler *inputHandler; struct Camera2D *camera; - struct IsometricMap ***layers; + struct IsometricMap **layers; } Game; Game * GameInit(); diff --git a/game.o b/game.o new file mode 100644 index 0000000..6ab38a9 Binary files /dev/null and b/game.o differ diff --git a/inputHandler.o b/inputHandler.o new file mode 100644 index 0000000..dea11f7 Binary files /dev/null and b/inputHandler.o differ diff --git a/isometricMap.o b/isometricMap.o new file mode 100644 index 0000000..73deaa8 Binary files /dev/null and b/isometricMap.o differ diff --git a/isometricRenderer.o b/isometricRenderer.o new file mode 100644 index 0000000..e103aee Binary files /dev/null and b/isometricRenderer.o differ diff --git a/list.o b/list.o new file mode 100644 index 0000000..503d8f7 Binary files /dev/null and b/list.o differ diff --git a/main.c b/main.c index a2286ad..bfc9174 100644 --- a/main.c +++ b/main.c @@ -26,9 +26,9 @@ int main(){ BeginMode2D(*(game->camera)); - IsometricRendererRenderIsometricMap(*game->layers, game->inputHandler); + IsometricRendererRenderIsometricMap(game->layers, game->inputHandler); - ListDrawAllSprites(game->sprites, *game->layers[0], game->camera); + ListDrawAllSprites(game->sprites, game->layers[0], game->camera); EndMode2D(); diff --git a/main.o b/main.o new file mode 100644 index 0000000..f7f180a Binary files /dev/null and b/main.o differ diff --git a/spiel b/spiel new file mode 100755 index 0000000..ae2dda1 Binary files /dev/null and b/spiel differ diff --git a/sprite.o b/sprite.o new file mode 100644 index 0000000..e748cf4 Binary files /dev/null and b/sprite.o differ diff --git a/tile.o b/tile.o new file mode 100644 index 0000000..a3f5170 Binary files /dev/null and b/tile.o differ