Integrada la clase asset. Corregidos algunos fallos en el bucle principal
This commit is contained in:
@@ -2,40 +2,23 @@
|
||||
#include "map.h"
|
||||
|
||||
// Constructor
|
||||
Map::Map(SDL_Renderer *renderer, LTexture *texture1, LTexture *texture2, LTexture *texture3, std::string file)
|
||||
Map::Map(SDL_Renderer *renderer, std::string file, Asset *asset)
|
||||
{
|
||||
init(renderer, texture1, texture2, texture3, file);
|
||||
}
|
||||
this->asset = asset;
|
||||
|
||||
// Destructor
|
||||
Map::~Map()
|
||||
{
|
||||
delete sprite_tile;
|
||||
delete sprite_actor;
|
||||
delete background;
|
||||
sprite_tile = nullptr;
|
||||
sprite_actor = nullptr;
|
||||
background = nullptr;
|
||||
texture_tile = new LTexture();
|
||||
texture_actor = new LTexture();
|
||||
texture_bg = new LTexture();
|
||||
|
||||
delete[] tile;
|
||||
delete[] actor;
|
||||
}
|
||||
loadTextureFromFile(texture_tile, asset->get("tiles_volcano.png"), renderer);
|
||||
loadTextureFromFile(texture_actor, asset->get("actors.png"), renderer);
|
||||
loadTextureFromFile(texture_bg, asset->get("bkg_surface.png"), renderer);
|
||||
|
||||
// Inicializa todas las variables
|
||||
void Map::init(SDL_Renderer *renderer, LTexture *texture1, LTexture *texture2, LTexture *texture3, std::string file)
|
||||
{
|
||||
sprite_tile = new AnimatedSprite();
|
||||
sprite_tile->setTexture(texture1);
|
||||
sprite_tile->setRenderer(renderer);
|
||||
sprite_tile = new AnimatedSprite(texture_tile, renderer);
|
||||
sprite_actor = new AnimatedSprite(texture_actor, renderer);
|
||||
|
||||
sprite_actor = new AnimatedSprite();
|
||||
sprite_actor->setTexture(texture2);
|
||||
sprite_actor->setRenderer(renderer);
|
||||
|
||||
background = new Sprite();
|
||||
background->setTexture(texture3);
|
||||
background->setRenderer(renderer);
|
||||
background->setSpriteClip(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
const SDL_Rect rect = {0, 0, GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT};
|
||||
background = new Sprite(rect, texture_bg, renderer);
|
||||
|
||||
src_rect = {0, 0, 0, 0};
|
||||
dst_rect = {0, 0, 0, 0};
|
||||
@@ -46,6 +29,33 @@ void Map::init(SDL_Renderer *renderer, LTexture *texture1, LTexture *texture2, L
|
||||
loadFromFile(file);
|
||||
}
|
||||
|
||||
// Destructor
|
||||
Map::~Map()
|
||||
{
|
||||
texture_tile->unload();
|
||||
delete texture_tile;
|
||||
texture_tile = nullptr;
|
||||
|
||||
texture_actor->unload();
|
||||
delete texture_actor;
|
||||
texture_actor = nullptr;
|
||||
|
||||
texture_bg->unload();
|
||||
delete texture_bg;
|
||||
texture_bg = nullptr;
|
||||
|
||||
delete sprite_tile;
|
||||
sprite_tile = nullptr;
|
||||
delete sprite_actor;
|
||||
|
||||
sprite_actor = nullptr;
|
||||
delete background;
|
||||
background = nullptr;
|
||||
|
||||
delete[] tile;
|
||||
delete[] actor;
|
||||
}
|
||||
|
||||
// Carga el mapa a partir de un fichero
|
||||
void Map::loadFromFile(std::string path)
|
||||
{
|
||||
@@ -74,16 +84,11 @@ void Map::loadFromFile(std::string path)
|
||||
|
||||
for (long i = 0; i < size; i++)
|
||||
SDL_RWread(file, &actor[i], sizeof(Uint8), 1);
|
||||
|
||||
|
||||
SDL_RWclose(file);
|
||||
}
|
||||
}
|
||||
|
||||
// Resetea ciertas variables
|
||||
void Map::reset()
|
||||
{
|
||||
}
|
||||
|
||||
// Actualiza todas las variables
|
||||
void Map::update()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user