Modificado el nombre de algunas variables
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
tilemap=01.tmx
|
tilemap=01.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
enemy_file=01.ene
|
enemyFile=01.ene
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
bgScroll=true
|
bgScroll=true
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=04.map
|
roomLeft=04.map
|
||||||
room_right=02.map
|
roomRight=02.map
|
||||||
|
|
||||||
[actors]
|
[actors]
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tilemap=02.tmx
|
tilemap=02.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
enemy_file=02.ene
|
enemyFile=02.ene
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
bgScroll=true
|
bgScroll=true
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=03.map
|
roomDown=03.map
|
||||||
room_left=01.map
|
roomLeft=01.map
|
||||||
room_right=05.map
|
roomRight=05.map
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
tilemap=03.tmx
|
tilemap=03.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
enemy_file=03.ene
|
enemyFile=03.ene
|
||||||
bgColor1=143,86,59
|
bgColor1=143,86,59
|
||||||
bgColor2=69,40,60
|
bgColor2=69,40,60
|
||||||
|
|
||||||
room_up=02.map
|
roomUp=02.map
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=0
|
roomLeft=0
|
||||||
room_right=06.map
|
roomRight=06.map
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
tilemap=04.tmx
|
tilemap=04.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=255,90,100
|
bgColor1=255,90,100
|
||||||
bgColor2=255,255,100
|
bgColor2=255,255,100
|
||||||
bgScroll=true
|
bgScroll=true
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=04.map
|
roomDown=04.map
|
||||||
room_left=04.map
|
roomLeft=04.map
|
||||||
room_right=01.map
|
roomRight=01.map
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
tilemap=05.tmx
|
tilemap=05.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
bgScroll=true
|
bgScroll=true
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=06.map
|
roomDown=06.map
|
||||||
room_left=02.map
|
roomLeft=02.map
|
||||||
room_right=07.map
|
roomRight=07.map
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
tilemap=06.tmx
|
tilemap=06.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=143,86,59
|
bgColor1=143,86,59
|
||||||
bgColor2=69,40,60
|
bgColor2=69,40,60
|
||||||
|
|
||||||
room_up=05.map
|
roomUp=05.map
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=03.map
|
roomLeft=03.map
|
||||||
room_right=0
|
roomRight=0
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
tilemap=07.tmx
|
tilemap=07.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=08.map
|
roomUp=08.map
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=05.map
|
roomLeft=05.map
|
||||||
room_right=0
|
roomRight=0
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
tilemap=08.tmx
|
tilemap=08.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=07.map
|
roomDown=07.map
|
||||||
room_left=10.map
|
roomLeft=10.map
|
||||||
room_right=09.map
|
roomRight=09.map
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
tilemap=09.tmx
|
tilemap=09.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=08.map
|
roomLeft=08.map
|
||||||
room_right=0
|
roomRight=0
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
tilemap=10.tmx
|
tilemap=10.tmx
|
||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=05.map
|
roomDown=05.map
|
||||||
room_left=10.map
|
roomLeft=10.map
|
||||||
room_right=08.map
|
roomRight=08.map
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
enemy_file=01.ene
|
enemyFile=01.ene
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=04.map
|
roomLeft=04.map
|
||||||
room_right=02.map
|
roomRight=02.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
01.tmx
|
01.tmx
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
enemy_file=02.ene
|
enemyFile=02.ene
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=03.map
|
roomDown=03.map
|
||||||
room_left=01.map
|
roomLeft=01.map
|
||||||
room_right=05.map
|
roomRight=05.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
02.tmx
|
02.tmx
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
enemy_file=03.ene
|
enemyFile=03.ene
|
||||||
bgColor1=143,86,59
|
bgColor1=143,86,59
|
||||||
bgColor2=69,40,60
|
bgColor2=69,40,60
|
||||||
|
|
||||||
room_up=02.map
|
roomUp=02.map
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=0
|
roomLeft=0
|
||||||
room_right=06.map
|
roomRight=06.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
03.tmx
|
03.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=04.map
|
roomDown=04.map
|
||||||
room_left=04.map
|
roomLeft=04.map
|
||||||
room_right=01.map
|
roomRight=01.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
04.tmx
|
04.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=06.map
|
roomDown=06.map
|
||||||
room_left=02.map
|
roomLeft=02.map
|
||||||
room_right=07.map
|
roomRight=07.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
05.tmx
|
05.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=143,86,59
|
bgColor1=143,86,59
|
||||||
bgColor2=69,40,60
|
bgColor2=69,40,60
|
||||||
|
|
||||||
room_up=05.map
|
roomUp=05.map
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=03.map
|
roomLeft=03.map
|
||||||
room_right=0
|
roomRight=0
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
06.tmx
|
06.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=08.map
|
roomUp=08.map
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=05.map
|
roomLeft=05.map
|
||||||
room_right=0
|
roomRight=0
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
07.tmx
|
07.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=07.map
|
roomDown=07.map
|
||||||
room_left=10.map
|
roomLeft=10.map
|
||||||
room_right=09.map
|
roomRight=09.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
08.tmx
|
08.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=0
|
roomDown=0
|
||||||
room_left=08.map
|
roomLeft=08.map
|
||||||
room_right=0
|
roomRight=0
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
09.tmx
|
09.tmx
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
tileset_img=surface.png
|
tileset=surface.png
|
||||||
bgColor1=0,171,159
|
bgColor1=0,171,159
|
||||||
bgColor2=144,225,231
|
bgColor2=144,225,231
|
||||||
|
|
||||||
room_up=0
|
roomUp=0
|
||||||
room_down=05.map
|
roomDown=05.map
|
||||||
room_left=10.map
|
roomLeft=10.map
|
||||||
room_right=08.map
|
roomRight=08.map
|
||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
10.tmx
|
10.tmx
|
||||||
|
|||||||
165
source/map.cpp
165
source/map.cpp
@@ -4,11 +4,11 @@
|
|||||||
Map::Map(std::string file, SDL_Renderer *renderer, Asset *asset, ItemTracker *itemTracker)
|
Map::Map(std::string file, SDL_Renderer *renderer, Asset *asset, ItemTracker *itemTracker)
|
||||||
{
|
{
|
||||||
// Inicializa variables
|
// Inicializa variables
|
||||||
tile_size = 8;
|
tileSize = 8;
|
||||||
map_width = 40;
|
mapWidth = 40;
|
||||||
map_height = 30;
|
mapHeight = 30;
|
||||||
name = file.substr(file.find_last_of("\\/") + 1);
|
name = file.substr(file.find_last_of("\\/") + 1);
|
||||||
enemy_file = "";
|
enemyFile = "";
|
||||||
bgColor1 = bgColor2 = {0, 0, 0};
|
bgColor1 = bgColor2 = {0, 0, 0};
|
||||||
bgScroll = false;
|
bgScroll = false;
|
||||||
counter = 0;
|
counter = 0;
|
||||||
@@ -19,47 +19,45 @@ Map::Map(std::string file, SDL_Renderer *renderer, Asset *asset, ItemTracker *it
|
|||||||
this->itemTracker = itemTracker;
|
this->itemTracker = itemTracker;
|
||||||
|
|
||||||
// Crea las texturas para dibujar el mapa
|
// Crea las texturas para dibujar el mapa
|
||||||
map_layerBG = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
|
mapLayerBG = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
|
||||||
if (map_layerBG == NULL)
|
if (mapLayerBG == NULL)
|
||||||
{
|
{
|
||||||
printf("Error: map_layer0 could not be created!\nSDL Error: %s\n", SDL_GetError());
|
printf("Error: mapLayer0 could not be created!\nSDL Error: %s\n", SDL_GetError());
|
||||||
}
|
}
|
||||||
SDL_SetTextureBlendMode(map_layerBG, SDL_BLENDMODE_BLEND);
|
SDL_SetTextureBlendMode(mapLayerBG, SDL_BLENDMODE_BLEND);
|
||||||
|
|
||||||
map_layer0 = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
|
mapLayer0 = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
|
||||||
if (map_layer0 == NULL)
|
if (mapLayer0 == NULL)
|
||||||
{
|
{
|
||||||
printf("Error: map_layer0 could not be created!\nSDL Error: %s\n", SDL_GetError());
|
printf("Error: mapLayer0 could not be created!\nSDL Error: %s\n", SDL_GetError());
|
||||||
}
|
}
|
||||||
SDL_SetTextureBlendMode(map_layer0, SDL_BLENDMODE_BLEND);
|
SDL_SetTextureBlendMode(mapLayer0, SDL_BLENDMODE_BLEND);
|
||||||
// SDL_SetTextureAlphaMod(map_layer0, 128);
|
|
||||||
|
|
||||||
map_layer1 = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
|
mapLayer1 = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, PLAY_AREA_WIDTH, PLAY_AREA_HEIGHT);
|
||||||
if (map_layer1 == NULL)
|
if (mapLayer1 == NULL)
|
||||||
{
|
{
|
||||||
printf("Error: map_layer1 could not be created!\nSDL Error: %s\n", SDL_GetError());
|
printf("Error: mapLayer1 could not be created!\nSDL Error: %s\n", SDL_GetError());
|
||||||
}
|
}
|
||||||
SDL_SetTextureBlendMode(map_layer1, SDL_BLENDMODE_BLEND);
|
SDL_SetTextureBlendMode(mapLayer1, SDL_BLENDMODE_BLEND);
|
||||||
|
|
||||||
// Crea los objetos
|
// Crea los objetos
|
||||||
loadMapFile(file);
|
loadMapFile(file);
|
||||||
texture_tile = new LTexture(renderer, asset->get(tileset_img));
|
textureTile = new LTexture(renderer, asset->get(tileset));
|
||||||
tileset_width = texture_tile->getWidth() / tile_size;
|
tilesetWidth = textureTile->getWidth() / tileSize;
|
||||||
|
|
||||||
loadMapTileFile(asset->get(tileMapFile));
|
loadMapTileFile(asset->get(tileMapFile));
|
||||||
|
|
||||||
// Pinta el mapa en las texturas
|
|
||||||
// fillMapTexture();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destructor
|
// Destructor
|
||||||
Map::~Map()
|
Map::~Map()
|
||||||
{
|
{
|
||||||
// Reclama la memoria utilizada por los objetos
|
// Reclama la memoria utilizada por los objetos
|
||||||
texture_tile->unload();
|
textureTile->unload();
|
||||||
delete texture_tile;
|
delete textureTile;
|
||||||
|
|
||||||
SDL_DestroyTexture(map_layer1);
|
SDL_DestroyTexture(mapLayerBG);
|
||||||
|
SDL_DestroyTexture(mapLayer0);
|
||||||
|
SDL_DestroyTexture(mapLayer1);
|
||||||
|
|
||||||
for (auto actor : actors)
|
for (auto actor : actors)
|
||||||
{
|
{
|
||||||
@@ -71,10 +69,7 @@ Map::~Map()
|
|||||||
// Carga las variables desde un fichero de mapa
|
// Carga las variables desde un fichero de mapa
|
||||||
bool Map::loadMapFile(std::string file_path)
|
bool Map::loadMapFile(std::string file_path)
|
||||||
{
|
{
|
||||||
// Indicador de éxito en la carga
|
const std::string filename = file_path.substr(file_path.find_last_of("\\/") + 1);
|
||||||
bool success = true;
|
|
||||||
|
|
||||||
std::string filename = file_path.substr(file_path.find_last_of("\\/") + 1);
|
|
||||||
std::string line;
|
std::string line;
|
||||||
std::ifstream file(file_path);
|
std::ifstream file(file_path);
|
||||||
|
|
||||||
@@ -111,7 +106,6 @@ bool Map::loadMapFile(std::string file_path)
|
|||||||
if (!setActor(&actor, &p1, &p2, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
if (!setActor(&actor, &p1, &p2, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
||||||
{
|
{
|
||||||
printf("Warning: file %s\n, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
printf("Warning: file %s\n, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
||||||
success = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (line != "[/moving platform]");
|
} while (line != "[/moving platform]");
|
||||||
@@ -141,7 +135,6 @@ bool Map::loadMapFile(std::string file_path)
|
|||||||
if (!setActor(&actor, &p1, &p2, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
if (!setActor(&actor, &p1, &p2, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
||||||
{
|
{
|
||||||
printf("Warning: file %s\n, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
printf("Warning: file %s\n, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
||||||
success = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (line != "[/diamond]");
|
} while (line != "[/diamond]");
|
||||||
@@ -166,7 +159,6 @@ bool Map::loadMapFile(std::string file_path)
|
|||||||
if (!setVars(line.substr(0, pos), line.substr(pos + 1, line.length())))
|
if (!setVars(line.substr(0, pos), line.substr(pos + 1, line.length())))
|
||||||
{
|
{
|
||||||
printf("Warning: file %s, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
printf("Warning: file %s, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
||||||
success = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -179,10 +171,10 @@ bool Map::loadMapFile(std::string file_path)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Warning: Unable to open %s file\n", filename.c_str());
|
printf("Warning: Unable to open %s file\n", filename.c_str());
|
||||||
success = false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lee la matriz de tiles desde un fichero tmx a un vector
|
// Lee la matriz de tiles desde un fichero tmx a un vector
|
||||||
@@ -230,22 +222,22 @@ bool Map::loadMapTileFile(std::string file_path)
|
|||||||
if (line.find("name=\"estatico\"") != std::string::npos)
|
if (line.find("name=\"estatico\"") != std::string::npos)
|
||||||
{
|
{
|
||||||
tilemap = readTilesFromFile(file);
|
tilemap = readTilesFromFile(file);
|
||||||
fillGradientTexture(*map_layerBG);
|
fillGradientTexture(*mapLayerBG);
|
||||||
fillMapTexture(*map_layerBG, tilemap, false);
|
fillMapTexture(*mapLayerBG, tilemap, false);
|
||||||
tilemap.clear();
|
tilemap.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (line.find("name=\"fondo\"") != std::string::npos)
|
else if (line.find("name=\"fondo\"") != std::string::npos)
|
||||||
{
|
{
|
||||||
tilemap = readTilesFromFile(file);
|
tilemap = readTilesFromFile(file);
|
||||||
fillMapTexture(*map_layer0, tilemap, true);
|
fillMapTexture(*mapLayer0, tilemap, true);
|
||||||
tilemap.clear();
|
tilemap.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (line.find("name=\"mapa\"") != std::string::npos)
|
else if (line.find("name=\"mapa\"") != std::string::npos)
|
||||||
{
|
{
|
||||||
tilemap = readTilesFromFile(file);
|
tilemap = readTilesFromFile(file);
|
||||||
fillMapTexture(*map_layer1, tilemap, true);
|
fillMapTexture(*mapLayer1, tilemap, true);
|
||||||
tilemap.clear();
|
tilemap.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,17 +264,14 @@ bool Map::loadMapTileFile(std::string file_path)
|
|||||||
// Asigna variables a partir de dos cadenas
|
// Asigna variables a partir de dos cadenas
|
||||||
bool Map::setVars(std::string var, std::string value)
|
bool Map::setVars(std::string var, std::string value)
|
||||||
{
|
{
|
||||||
// Indicador de éxito en la asignación
|
|
||||||
bool success = true;
|
|
||||||
|
|
||||||
if (var == "tilemap")
|
if (var == "tilemap")
|
||||||
{
|
{
|
||||||
tileMapFile = value;
|
tileMapFile = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "tileset_img")
|
else if (var == "tileset")
|
||||||
{
|
{
|
||||||
tileset_img = value;
|
tileset = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "bgColor1")
|
else if (var == "bgColor1")
|
||||||
@@ -316,29 +305,29 @@ bool Map::setVars(std::string var, std::string value)
|
|||||||
bgScroll = stringToBool(value);
|
bgScroll = stringToBool(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "room_up")
|
else if (var == "roomUp")
|
||||||
{
|
{
|
||||||
room_up = value;
|
roomUp = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "room_down")
|
else if (var == "roomDown")
|
||||||
{
|
{
|
||||||
room_down = value;
|
roomDown = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "room_left")
|
else if (var == "roomLeft")
|
||||||
{
|
{
|
||||||
room_left = value;
|
roomLeft = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "room_right")
|
else if (var == "roomRight")
|
||||||
{
|
{
|
||||||
room_right = value;
|
roomRight = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "enemy_file")
|
else if (var == "enemyFile")
|
||||||
{
|
{
|
||||||
enemy_file = value;
|
enemyFile = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "")
|
else if (var == "")
|
||||||
@@ -347,18 +336,15 @@ bool Map::setVars(std::string var, std::string value)
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
success = false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Asigna variables a una estructura enemy_t
|
// Asigna variables a una estructura enemy_t
|
||||||
bool Map::setActor(actor_t *actor, SDL_Point *p1, SDL_Point *p2, std::string var, std::string value)
|
bool Map::setActor(actor_t *actor, SDL_Point *p1, SDL_Point *p2, std::string var, std::string value)
|
||||||
{
|
{
|
||||||
// Indicador de éxito en la asignación
|
|
||||||
bool success = true;
|
|
||||||
|
|
||||||
if (var == "tileset")
|
if (var == "tileset")
|
||||||
{
|
{
|
||||||
actor->tileset = value;
|
actor->tileset = value;
|
||||||
@@ -381,12 +367,12 @@ bool Map::setActor(actor_t *actor, SDL_Point *p1, SDL_Point *p2, std::string var
|
|||||||
|
|
||||||
else if (var == "x")
|
else if (var == "x")
|
||||||
{
|
{
|
||||||
actor->x = std::stof(value) * tile_size;
|
actor->x = std::stof(value) * tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "y")
|
else if (var == "y")
|
||||||
{
|
{
|
||||||
actor->y = std::stof(value) * tile_size;
|
actor->y = std::stof(value) * tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "vx")
|
else if (var == "vx")
|
||||||
@@ -401,22 +387,22 @@ bool Map::setActor(actor_t *actor, SDL_Point *p1, SDL_Point *p2, std::string var
|
|||||||
|
|
||||||
else if (var == "x1")
|
else if (var == "x1")
|
||||||
{
|
{
|
||||||
p1->x = std::stoi(value) * tile_size;
|
p1->x = std::stoi(value) * tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "x2")
|
else if (var == "x2")
|
||||||
{
|
{
|
||||||
p2->x = std::stoi(value) * tile_size;
|
p2->x = std::stoi(value) * tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "y1")
|
else if (var == "y1")
|
||||||
{
|
{
|
||||||
p1->y = std::stoi(value) * tile_size;
|
p1->y = std::stoi(value) * tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "y2")
|
else if (var == "y2")
|
||||||
{
|
{
|
||||||
p2->y = std::stoi(value) * tile_size;
|
p2->y = std::stoi(value) * tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ((var == "[/moving platform]") || (var == "[/diamond]"))
|
else if ((var == "[/moving platform]") || (var == "[/diamond]"))
|
||||||
@@ -425,10 +411,10 @@ bool Map::setActor(actor_t *actor, SDL_Point *p1, SDL_Point *p2, std::string var
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
success = false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return true;
|
||||||
}
|
}
|
||||||
// Pinta el degradado en la textura
|
// Pinta el degradado en la textura
|
||||||
void Map::fillGradientTexture(SDL_Texture &layer)
|
void Map::fillGradientTexture(SDL_Texture &layer)
|
||||||
@@ -437,11 +423,11 @@ void Map::fillGradientTexture(SDL_Texture &layer)
|
|||||||
SDL_SetRenderTarget(renderer, &layer);
|
SDL_SetRenderTarget(renderer, &layer);
|
||||||
|
|
||||||
// Dibuja el degradado de fondo
|
// Dibuja el degradado de fondo
|
||||||
const float num_lines = PLAY_AREA_BOTTOM - PLAY_AREA_TOP;
|
const float numLines = PLAY_AREA_BOTTOM - PLAY_AREA_TOP;
|
||||||
|
|
||||||
for (int i = PLAY_AREA_TOP; i < PLAY_AREA_BOTTOM; ++i)
|
for (int i = PLAY_AREA_TOP; i < PLAY_AREA_BOTTOM; ++i)
|
||||||
{
|
{
|
||||||
float step = ((float)i / num_lines);
|
float step = ((float)i / numLines);
|
||||||
int r = bgColor1.r + ((bgColor2.r - bgColor1.r) * step);
|
int r = bgColor1.r + ((bgColor2.r - bgColor1.r) * step);
|
||||||
int g = bgColor1.g + ((bgColor2.g - bgColor1.g) * step);
|
int g = bgColor1.g + ((bgColor2.g - bgColor1.g) * step);
|
||||||
int b = bgColor1.b + ((bgColor2.b - bgColor1.b) * step);
|
int b = bgColor1.b + ((bgColor2.b - bgColor1.b) * step);
|
||||||
@@ -457,7 +443,7 @@ void Map::fillGradientTexture(SDL_Texture &layer)
|
|||||||
void Map::fillMapTexture(SDL_Texture &layer, std::vector<int> tilemap, bool clean)
|
void Map::fillMapTexture(SDL_Texture &layer, std::vector<int> tilemap, bool clean)
|
||||||
{
|
{
|
||||||
// Crea variables
|
// Crea variables
|
||||||
SDL_Rect clip = {0, 0, tile_size, tile_size};
|
SDL_Rect clip = {0, 0, tileSize, tileSize};
|
||||||
|
|
||||||
// Cambia el puntero del renderizador a la textura
|
// Cambia el puntero del renderizador a la textura
|
||||||
SDL_SetRenderTarget(renderer, &layer);
|
SDL_SetRenderTarget(renderer, &layer);
|
||||||
@@ -470,15 +456,15 @@ void Map::fillMapTexture(SDL_Texture &layer, std::vector<int> tilemap, bool clea
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Dibuja el mapeado de tiles
|
// Dibuja el mapeado de tiles
|
||||||
for (int y = 0; y < map_height; ++y)
|
for (int y = 0; y < mapHeight; ++y)
|
||||||
for (int x = 0; x < map_width; ++x)
|
for (int x = 0; x < mapWidth; ++x)
|
||||||
{
|
{
|
||||||
// Resta uno porque Tiled almacena los indices empezando de 1 en vez de 0.
|
// Resta uno porque Tiled almacena los indices empezando de 1 en vez de 0.
|
||||||
// El problema es que los tiles vacios los pone como 0 y aqui pasan a ser -1
|
// El problema es que los tiles vacios los pone como 0 y aqui pasan a ser -1
|
||||||
// con lo que esta pintando desde fuera de la textura
|
// con lo que esta pintando desde fuera de la textura
|
||||||
clip.x = ((tilemap[(y * map_width) + x] - 1) % tileset_width) * tile_size;
|
clip.x = ((tilemap[(y * mapWidth) + x] - 1) % tilesetWidth) * tileSize;
|
||||||
clip.y = ((tilemap[(y * map_width) + x] - 1) / tileset_width) * tile_size;
|
clip.y = ((tilemap[(y * mapWidth) + x] - 1) / tilesetWidth) * tileSize;
|
||||||
texture_tile->render(renderer, x * tile_size, y * tile_size, &clip);
|
textureTile->render(renderer, x * tileSize, y * tileSize, &clip);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vuelve a colocar el renderizador apuntando a la pantalla
|
// Vuelve a colocar el renderizador apuntando a la pantalla
|
||||||
@@ -498,7 +484,7 @@ void Map::render()
|
|||||||
void Map::renderLayerBG()
|
void Map::renderLayerBG()
|
||||||
{
|
{
|
||||||
// Dibuja la textura con el mapa en pantalla
|
// Dibuja la textura con el mapa en pantalla
|
||||||
SDL_RenderCopy(renderer, map_layerBG, nullptr, nullptr);
|
SDL_RenderCopy(renderer, mapLayerBG, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dibuja la capa 0
|
// Dibuja la capa 0
|
||||||
@@ -514,12 +500,12 @@ void Map::renderLayer0()
|
|||||||
SDL_Rect src2 = {PLAY_AREA_X + offset, PLAY_AREA_Y, PLAY_AREA_WIDTH - offset, PLAY_AREA_HEIGHT};
|
SDL_Rect src2 = {PLAY_AREA_X + offset, PLAY_AREA_Y, PLAY_AREA_WIDTH - offset, PLAY_AREA_HEIGHT};
|
||||||
SDL_Rect dst2 = {PLAY_AREA_X, PLAY_AREA_Y, PLAY_AREA_WIDTH - offset, PLAY_AREA_HEIGHT};
|
SDL_Rect dst2 = {PLAY_AREA_X, PLAY_AREA_Y, PLAY_AREA_WIDTH - offset, PLAY_AREA_HEIGHT};
|
||||||
|
|
||||||
SDL_RenderCopy(renderer, map_layer0, &src1, &dst1);
|
SDL_RenderCopy(renderer, mapLayer0, &src1, &dst1);
|
||||||
SDL_RenderCopy(renderer, map_layer0, &src2, &dst2);
|
SDL_RenderCopy(renderer, mapLayer0, &src2, &dst2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SDL_RenderCopy(renderer, map_layer0, nullptr, nullptr);
|
SDL_RenderCopy(renderer, mapLayer0, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -527,7 +513,7 @@ void Map::renderLayer0()
|
|||||||
void Map::renderLayer1()
|
void Map::renderLayer1()
|
||||||
{
|
{
|
||||||
// Dibuja la textura con el mapa en pantalla
|
// Dibuja la textura con el mapa en pantalla
|
||||||
SDL_RenderCopy(renderer, map_layer1, nullptr, nullptr);
|
SDL_RenderCopy(renderer, mapLayer1, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dibuja los actores
|
// Dibuja los actores
|
||||||
@@ -558,7 +544,7 @@ e_tile_map Map::getTile(SDL_Point p)
|
|||||||
const int y = std::max(getPlayArea(b_top), (std::min(p.y, getPlayArea(b_bottom) - 1)));
|
const int y = std::max(getPlayArea(b_top), (std::min(p.y, getPlayArea(b_bottom) - 1)));
|
||||||
|
|
||||||
// Calcula el tile
|
// Calcula el tile
|
||||||
const int tile = collisionmap[((y / tile_size) * map_width) + (x / tile_size)];
|
const int tile = collisionmap[((y / tileSize) * mapWidth) + (x / tileSize)];
|
||||||
|
|
||||||
if (tile == 0)
|
if (tile == 0)
|
||||||
{
|
{
|
||||||
@@ -581,7 +567,7 @@ e_tile_map Map::getTile(SDL_Point p)
|
|||||||
// Devuelve el valor de la variable
|
// Devuelve el valor de la variable
|
||||||
int Map::getTileSize()
|
int Map::getTileSize()
|
||||||
{
|
{
|
||||||
return tile_size;
|
return tileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Devuelve el valor de los bordes de la zona de juego
|
// Devuelve el valor de los bordes de la zona de juego
|
||||||
@@ -598,11 +584,11 @@ int Map::getPlayArea(e_border border)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case b_right:
|
case b_right:
|
||||||
return tile_size * map_width;
|
return tileSize * mapWidth;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case b_bottom:
|
case b_bottom:
|
||||||
return tile_size * map_height;
|
return tileSize * mapHeight;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -618,19 +604,19 @@ std::string Map::getRoomFileName(e_border border)
|
|||||||
switch (border)
|
switch (border)
|
||||||
{
|
{
|
||||||
case b_top:
|
case b_top:
|
||||||
return room_up;
|
return roomUp;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case b_left:
|
case b_left:
|
||||||
return room_left;
|
return roomLeft;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case b_right:
|
case b_right:
|
||||||
return room_right;
|
return roomRight;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case b_bottom:
|
case b_bottom:
|
||||||
return room_down;
|
return roomDown;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -737,12 +723,11 @@ void Map::getItem(int index)
|
|||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
std::string Map::getEnemyFile()
|
std::string Map::getEnemyFile()
|
||||||
{
|
{
|
||||||
return enemy_file;
|
return enemyFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recarga las texturas
|
// Recarga las texturas
|
||||||
void Map::reLoadTextures()
|
void Map::reLoadTextures()
|
||||||
{
|
{
|
||||||
texture_tile->reLoad();
|
textureTile->reLoad();
|
||||||
// fillMapTexture();
|
|
||||||
}
|
}
|
||||||
28
source/map.h
28
source/map.h
@@ -38,18 +38,18 @@ private:
|
|||||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
std::string name; // Identificador de la habitación
|
std::string name; // Identificador de la habitación
|
||||||
std::string room_up; // Identificador de la habitación que se encuentra arriba
|
std::string roomUp; // Identificador de la habitación que se encuentra arriba
|
||||||
std::string room_down; // Identificador de la habitación que se encuentra abajp
|
std::string roomDown; // Identificador de la habitación que se encuentra abajp
|
||||||
std::string room_left; // Identificador de la habitación que se encuentra a la izquierda
|
std::string roomLeft; // Identificador de la habitación que se encuentra a la izquierda
|
||||||
std::string room_right; // Identificador de la habitación que se encuentra a la derecha
|
std::string roomRight; // Identificador de la habitación que se encuentra a la derecha
|
||||||
std::string enemy_file; // Fichero con los enemigos para la habitación
|
std::string enemyFile; // Fichero con los enemigos para la habitación
|
||||||
std::string tileset_img; // Imagen con los graficos para la habitación
|
std::string tileset; // Imagen con los graficos para la habitación
|
||||||
std::string tileMapFile; // Fichero con el mapa de indices de tile
|
std::string tileMapFile; // Fichero con el mapa de indices de tile
|
||||||
std::vector<int> collisionmap; // Indice con los tipos de tile de la habitación
|
std::vector<int> collisionmap; // Indice con los tipos de tile de la habitación
|
||||||
LTexture *texture_tile; // Textura con los graficos de los tiles habitación
|
LTexture *textureTile; // Textura con los graficos de los tiles habitación
|
||||||
SDL_Texture *map_layerBG; // Textura para dibujar la capa BG del mapa de la habitación
|
SDL_Texture *mapLayerBG; // Textura para dibujar la capa BG del mapa de la habitación
|
||||||
SDL_Texture *map_layer0; // Textura para dibujar la capa 0 del mapa de la habitación
|
SDL_Texture *mapLayer0; // Textura para dibujar la capa 0 del mapa de la habitación
|
||||||
SDL_Texture *map_layer1; // Textura para dibujar la capa 1 del mapa de la habitación
|
SDL_Texture *mapLayer1; // Textura para dibujar la capa 1 del mapa de la habitación
|
||||||
std::vector<Actor *> actors; // Listado con los actores de la habitación
|
std::vector<Actor *> actors; // Listado con los actores de la habitación
|
||||||
color_t bgColor1; // Color superior del degradado de fondo
|
color_t bgColor1; // Color superior del degradado de fondo
|
||||||
color_t bgColor2; // Color inferior del degradado de fondo
|
color_t bgColor2; // Color inferior del degradado de fondo
|
||||||
@@ -57,10 +57,10 @@ private:
|
|||||||
ItemTracker *itemTracker; // Objeto que gestiona los items que ya se han recogido
|
ItemTracker *itemTracker; // Objeto que gestiona los items que ya se han recogido
|
||||||
int counter; // Contador para lo que se necesite
|
int counter; // Contador para lo que se necesite
|
||||||
|
|
||||||
int tile_size; // Ancho del tile en pixels
|
int tileSize; // Ancho del tile en pixels
|
||||||
int map_width; // Ancho del mapa en tiles
|
int mapWidth; // Ancho del mapa en tiles
|
||||||
int map_height; // Alto del mapa en tiles
|
int mapHeight; // Alto del mapa en tiles
|
||||||
int tileset_width; // Ancho del tileset en tiles
|
int tilesetWidth; // Ancho del tileset en tiles
|
||||||
|
|
||||||
// Carga las variables desde un fichero de mapa
|
// Carga las variables desde un fichero de mapa
|
||||||
bool loadMapFile(std::string file);
|
bool loadMapFile(std::string file);
|
||||||
|
|||||||
Reference in New Issue
Block a user