diff --git a/Input/inputHandler.c b/Input/inputHandler.c index 95ea24a..0722f7e 100644 --- a/Input/inputHandler.c +++ b/Input/inputHandler.c @@ -57,7 +57,7 @@ void mouseInput(InputHandler *inputHandler, Sprite *sprites, int *spriteAmount, inputHandler->cursorPos.x = GetMousePosition().x; inputHandler->cursorPos.y = GetMousePosition().y; - inputHandler->selectedTile = IsometricMapProject(map, camera, inputHandler->cursorPos.x, inputHandler->cursorPos.y); + IsometricMapProject(map, camera, inputHandler->cursorPos.x, inputHandler->cursorPos.y, &inputHandler->selectedTile); if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){ if(inputHandler->pressed == 0){ diff --git a/IsometricMap/isometricMap.c b/IsometricMap/isometricMap.c index 758de60..28bb0c0 100644 --- a/IsometricMap/isometricMap.c +++ b/IsometricMap/isometricMap.c @@ -62,7 +62,7 @@ Tile * IsometricMapGetTileFromArrayPosition(IsometricMap *map, int x, int y){ return &(map->tiles[x][y]); } -Vector2 IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, int x, int y){ +void IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, int x, int y, Vector2 *tmp){ float tileWidthHalf = isometricMap->tileTextures[0].width / 2; float tileHeightHalf = isometricMap->tileTextures[0].height / 2; @@ -78,9 +78,11 @@ Vector2 IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, int x, //Vector2 tmp = {isoX * tileWidthHalf * 2, isoY * tileHeightHalf * 2}; - Vector2 tmp = {isoX, isoY}; + //Vector2* tmp = (Vector2 *) malloc(sizeof(Vector2)); + tmp->x = isoX; + tmp->y = isoY; - return tmp; + //return tmp; } diff --git a/IsometricMap/isometricMap.h b/IsometricMap/isometricMap.h index 4e0a35f..50d0661 100644 --- a/IsometricMap/isometricMap.h +++ b/IsometricMap/isometricMap.h @@ -17,8 +17,6 @@ typedef struct IsometricMap{ // TODO: void IsometricMapAddTile(IsometricMap *isometricMap, int x, int y, int textureId); Tile * IsometricMapGetTileFromWorldCoordinates(IsometricMap *isometricMap, float x, float y); -// Screen Coordinates -> World Coordinates -Vector2 IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, int x, int y); // World Coordinates -> Screen Coordinates Vector2 IsometricMapUnproject(IsometricMap *isometricMap, Camera2D *camera, int x, int y); @@ -26,7 +24,8 @@ Vector2 IsometricMapUnproject(IsometricMap *isometricMap, Camera2D *camera, int IsometricMap * IsometricMapInit(int x, int y); Vector2 * IsometricMapCalcOffsetForTileAt(int x, int y, int textureSize); Tile * IsometricMapGetTileFromArrayPosition(IsometricMap *isometricMap, int x, int y); - +// Screen Coordinates -> World Coordinates +void IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, int x, int y, Vector2 *tmp); #endif \ No newline at end of file diff --git a/inputHandler.o b/inputHandler.o index 78e05a2..fa41490 100644 Binary files a/inputHandler.o and b/inputHandler.o differ diff --git a/isometricMap.o b/isometricMap.o index 8291044..6973efc 100644 Binary files a/isometricMap.o and b/isometricMap.o differ diff --git a/isometricRenderer.o b/isometricRenderer.o index 747892a..a391ea1 100644 Binary files a/isometricRenderer.o and b/isometricRenderer.o differ diff --git a/main.c b/main.c index 6f1a072..14d66eb 100644 --- a/main.c +++ b/main.c @@ -39,10 +39,10 @@ int main(){ BeginMode2D(camera); - IsometricRendererRenderIsometricMap(map); - Vector2 tmp = IsometricMapProject(map, &camera, inputHandler.cursorPos.x, inputHandler.cursorPos.y); + IsometricRendererRenderIsometricMap(map, &inputHandler); + IsometricMapProject(map, &camera, inputHandler.cursorPos.x, inputHandler.cursorPos.y, &inputHandler.selectedTile); - printf("%f %f \n", tmp.x, tmp.y); + printf("%f %f \n", inputHandler.selectedTile.x, inputHandler.selectedTile.y); int i; for(i=0; i < spriteAmount; i++){ diff --git a/main.o b/main.o index 470e776..af34ca9 100644 Binary files a/main.o and b/main.o differ diff --git a/spiel b/spiel index d3d18d9..df0e7dd 100755 Binary files a/spiel and b/spiel differ