Implementado el cambio de pantalla
This commit is contained in:
@@ -8,7 +8,7 @@ Map::Map(std::string file, SDL_Renderer *renderer, Asset *asset)
|
||||
map_width = 40;
|
||||
map_height = 26;
|
||||
tileset_width = 32;
|
||||
|
||||
|
||||
// Copia los punteros a objetos
|
||||
this->asset = asset;
|
||||
this->renderer = renderer;
|
||||
@@ -223,9 +223,11 @@ void Map::render()
|
||||
}
|
||||
|
||||
// Devuelve el tipo de tile que hay en un punto
|
||||
t_tile_map Map::getTile(SDL_Point p)
|
||||
e_tile_map Map::getTile(SDL_Point p)
|
||||
{
|
||||
const int tile = tilemap[((p.y / tile_size) * map_width) + (p.x / tile_size)];
|
||||
const int x = std::max(getPlayArea(b_left), (std::min(p.x, getPlayArea(b_right))));
|
||||
const int y = std::max(getPlayArea(b_top), (std::min(p.y, getPlayArea(b_bottom))));
|
||||
const int tile = tilemap[((y / tile_size) * map_width) + (x / tile_size)];
|
||||
const int png_width = 32;
|
||||
|
||||
if (tile >= 0 && tile < 8 * png_width)
|
||||
@@ -240,6 +242,8 @@ t_tile_map Map::getTile(SDL_Point p)
|
||||
{
|
||||
return passable;
|
||||
}
|
||||
|
||||
return nothing;
|
||||
}
|
||||
|
||||
// Devuelve el valor de la variable
|
||||
@@ -252,4 +256,60 @@ int Map::getTileSize()
|
||||
int Map::getTileIndex(SDL_Point p)
|
||||
{
|
||||
return tilemap[((p.y / tile_size) * map_width) + (p.x / tile_size)];
|
||||
}
|
||||
|
||||
// Devuelve el valor de los bordes de la zona de juego
|
||||
int Map::getPlayArea(e_border border)
|
||||
{
|
||||
switch (border)
|
||||
{
|
||||
case b_top:
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case b_left:
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case b_right:
|
||||
return tile_size * map_width;
|
||||
break;
|
||||
|
||||
case b_bottom:
|
||||
return tile_size * map_height;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Devuelve el nombre del fichero de la habitación en funcion del borde
|
||||
std::string Map::getRoomFileName(e_border border)
|
||||
{
|
||||
switch (border)
|
||||
{
|
||||
case b_top:
|
||||
return room_up;
|
||||
break;
|
||||
|
||||
case b_left:
|
||||
return room_left;
|
||||
break;
|
||||
|
||||
case b_right:
|
||||
return room_right;
|
||||
break;
|
||||
|
||||
case b_bottom:
|
||||
return room_down;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
Reference in New Issue
Block a user