selected Tile is detected, weird drifting

main
JanEhehalt 3 years ago
parent 660ed03429
commit 7051b4bd44

@ -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){

@ -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;
}

@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -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++){

BIN
main.o

Binary file not shown.

BIN
spiel

Binary file not shown.
Loading…
Cancel
Save