|
|
|
|
@ -74,10 +74,32 @@ void IsometricMapProject(IsometricMap *isometricMap, Camera2D *camera, float x,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Unproject: World Coordinates -> Screen Coordinates writes result in tmp Vector
|
|
|
|
|
void IsometricMapUnproject(IsometricMap *isometricMap, Camera2D *camera, int x, int y, Vector2 *tmp){
|
|
|
|
|
void IsometricMapUnproject(Camera2D *camera, int x, int y, Vector2 *tmp){
|
|
|
|
|
tmp->x = ((x - y)/2) + camera->target.x;
|
|
|
|
|
tmp->y = ((x + y)/4) + camera->target.y;
|
|
|
|
|
}
|
|
|
|
|
void IsometricMapUnprojectIgnoreCam(int x, int y, Vector2 *tmp){
|
|
|
|
|
tmp->x = ((x - y)/2);
|
|
|
|
|
tmp->y = ((x + y)/4);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// USE INSIDE MODE2D!!
|
|
|
|
|
void IsometricMapDrawRectangle(Vector2 from, Vector2 to, Color color){
|
|
|
|
|
from.x += 32;
|
|
|
|
|
to.x += 32;
|
|
|
|
|
Vector2 corner1 = {from.x, from.y};
|
|
|
|
|
IsometricMapUnprojectIgnoreCam(corner1.x, corner1.y, &corner1);
|
|
|
|
|
Vector2 corner2 = {to.x, from.y};
|
|
|
|
|
IsometricMapUnprojectIgnoreCam(corner2.x, corner2.y, &corner2);
|
|
|
|
|
Vector2 corner3 = {to.x, to.y};
|
|
|
|
|
IsometricMapUnprojectIgnoreCam(corner3.x, corner3.y, &corner3);
|
|
|
|
|
Vector2 corner4 = {from.x, to.y};
|
|
|
|
|
IsometricMapUnprojectIgnoreCam(corner4.x, corner4.y, &corner4);
|
|
|
|
|
|
|
|
|
|
DrawLineV(corner1, corner2, RED);
|
|
|
|
|
DrawLineV(corner2, corner3, RED);
|
|
|
|
|
DrawLineV(corner3, corner4, RED);
|
|
|
|
|
DrawLineV(corner4, corner1, RED);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// returns Tile * -> tile at coordinates x y z=layer
|
|
|
|
|
|