Animaciones precacheadas

This commit is contained in:
2022-10-27 18:42:07 +02:00
parent 35b4d19188
commit 1934f790f7
9 changed files with 20 additions and 15 deletions

View File

@@ -12,7 +12,6 @@ Resource::Resource(SDL_Renderer *renderer, Asset *asset, options_t *options)
// Carga las texturas de una lista // Carga las texturas de una lista
void Resource::loadTextures(std::vector<std::string> list) void Resource::loadTextures(std::vector<std::string> list)
{ {
std::cout << "** LOAD TEXTURES" << std::endl;
for (auto l : list) for (auto l : list)
{ {
texture_t t; texture_t t;
@@ -20,13 +19,11 @@ void Resource::loadTextures(std::vector<std::string> list)
t.texture = new Texture(renderer, asset->get(t.name)); t.texture = new Texture(renderer, asset->get(t.name));
textures.push_back(t); textures.push_back(t);
} }
std::cout << "** TEXTURES LOADED" << std::endl;
} }
// Carga las animaciones desde una lista // Carga las animaciones desde una lista
void Resource::loadAnimations(std::vector<std::string> list) void Resource::loadAnimations(std::vector<std::string> list)
{ {
std::cout << "** LOAD ANIMATIONS" << std::endl;
for (auto l : list) for (auto l : list)
{ {
animation_t as; animation_t as;
@@ -34,7 +31,6 @@ void Resource::loadAnimations(std::vector<std::string> list)
as.animation = new animatedSprite_t(loadAnimationFromFile(getTexture(l+".png"), asset->get(l+".ani"))); as.animation = new animatedSprite_t(loadAnimationFromFile(getTexture(l+".png"), asset->get(l+".ani")));
animations.push_back(as); animations.push_back(as);
} }
std::cout << "** ANIMATIONS LOADED" << std::endl;
} }
// Recarga las texturas // Recarga las texturas

View File

@@ -181,6 +181,8 @@ bool Director::saveConfig()
// Carga los recursos // Carga los recursos
void Director::loadResources(section_t section) void Director::loadResources(section_t section)
{ {
std::cout << "** LOAD RESOURCES" << std::endl;
if (section.name == SECTION_PROG_LOGO) if (section.name == SECTION_PROG_LOGO)
{ {
std::vector<std::string> textureList; std::vector<std::string> textureList;
@@ -339,6 +341,8 @@ void Director::loadResources(section_t section)
resource->loadAnimations(animationList); resource->loadAnimations(animationList);
} }
std::cout << "** RESOURCES LOADED" << std::endl;
} }
// Asigna variables a partir de dos cadenas // Asigna variables a partir de dos cadenas

View File

@@ -12,7 +12,8 @@ Enemy::Enemy(enemy_t enemy)
// Crea objetos // Crea objetos
texture = resource->getTexture(enemy.tileset); texture = resource->getTexture(enemy.tileset);
sprite = new AnimatedSprite(texture, renderer, asset->get(enemy.animation)); //sprite = new AnimatedSprite(texture, renderer, asset->get(enemy.animation));
sprite = new AnimatedSprite(renderer, resource->getAnimation(enemy.animation));
// Obten el resto de valores // Obten el resto de valores
x1 = enemy.x1; x1 = enemy.x1;

View File

@@ -1,4 +1,5 @@
#include "game.h" #include "game.h"
#include <iostream>
// Constructor // Constructor
Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, Debug *debug) Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *asset, options_t *options, Input *input, Debug *debug)
@@ -30,7 +31,7 @@ Game::Game(SDL_Renderer *renderer, Screen *screen, Resource *resource, Asset *as
itemTracker = new ItemTracker(); itemTracker = new ItemTracker();
roomTracker = new RoomTracker(); roomTracker = new RoomTracker();
room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug); room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug);
player = new Player(spawnPoint, "player.png", asset->get("player.ani"), renderer, resource, asset, options, input, room, debug); player = new Player(spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug);
eventHandler = new SDL_Event(); eventHandler = new SDL_Event();
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer); text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
music = JA_LoadMusic(asset->get("game.ogg").c_str()); music = JA_LoadMusic(asset->get("game.ogg").c_str());
@@ -391,7 +392,7 @@ void Game::killPlayer()
// Crea la nueva habitación y el nuevo jugador // Crea la nueva habitación y el nuevo jugador
room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug); room = new Room(asset->get(currentRoom), renderer, screen, resource, asset, options, itemTracker, &board.items, debug);
player = new Player(spawnPoint, "player.png", asset->get("player.ani"), renderer, resource, asset, options, input, room, debug); player = new Player(spawnPoint, "player.png", "player.ani", renderer, resource, asset, options, input, room, debug);
room->pause(); room->pause();
player->pause(); player->pause();

View File

@@ -15,8 +15,8 @@ Player::Player(player_t ini, std::string png, std::string animation, SDL_Rendere
this->options = options; this->options = options;
// Crea objetos // Crea objetos
texture = resource->getTexture(png); //texture = resource->getTexture(png);
sprite = new AnimatedSprite(texture, renderer, animation); sprite = new AnimatedSprite(renderer, resource->getAnimation(animation));
// Inicializa variables // Inicializa variables
color = stringToColor(options->palette, "white"); color = stringToColor(options->palette, "white");
@@ -688,7 +688,8 @@ player_t Player::getSpawnParams()
// Recarga la textura // Recarga la textura
void Player::reLoadTexture() void Player::reLoadTexture()
{ {
texture->reLoad(); sprite->getTexture()->reLoad();
//texture->reLoad();
} }
// Recarga la paleta // Recarga la paleta

View File

@@ -42,7 +42,7 @@ public:
Resource *resource; // Objeto con los recursos Resource *resource; // Objeto con los recursos
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
Room *room; // Objeto encargado de gestionar cada habitación del juego Room *room; // Objeto encargado de gestionar cada habitación del juego
Texture *texture; // Textura con los graficos del enemigo //Texture *texture; // Textura con los graficos del enemigo
AnimatedSprite *sprite; // Sprite del enemigo AnimatedSprite *sprite; // Sprite del enemigo
Debug *debug; // Objeto para gestionar la información de debug Debug *debug; // Objeto para gestionar la información de debug
options_t *options; // Puntero a las opciones del juego options_t *options; // Puntero a las opciones del juego

View File

@@ -116,6 +116,7 @@ bool Room::loadMapFile(std::string file_path)
// Encuentra la posición del caracter '=' // Encuentra la posición del caracter '='
int pos = line.find("="); int pos = line.find("=");
// Procesa las dos subcadenas // Procesa las dos subcadenas
if (!setEnemy(&enemy, line.substr(0, pos), line.substr(pos + 1, line.length()))) if (!setEnemy(&enemy, line.substr(0, pos), line.substr(pos + 1, line.length())))
{ {

View File

@@ -13,9 +13,9 @@ ScoreBoard::ScoreBoard(SDL_Renderer *renderer, Resource *resource, Asset *asset,
this->options = options; this->options = options;
// Reserva memoria para los objetos // Reserva memoria para los objetos
playerTexture = resource->getTexture("player.png"); //playerTexture = resource->getTexture("player.png");
itemTexture = resource->getTexture("items.png"); itemTexture = resource->getTexture("items.png");
sprite = new AnimatedSprite(playerTexture, renderer, asset->get("player.ani")); sprite = new AnimatedSprite(renderer, resource->getAnimation("player.ani"));
sprite->setCurrentAnimation("walk_menu"); sprite->setCurrentAnimation("walk_menu");
text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer); text = new Text("smb2.png", asset->get("smb2.txt"), resource, renderer);
@@ -117,7 +117,8 @@ ScoreBoard::clock_t ScoreBoard::getTime()
// Recarga la textura // Recarga la textura
void ScoreBoard::reLoadTexture() void ScoreBoard::reLoadTexture()
{ {
playerTexture->reLoad(); sprite->getTexture()->reLoad();
//playerTexture->reLoad();
itemTexture->reLoad(); itemTexture->reLoad();
text->reLoadTexture(); text->reLoadTexture();
} }

View File

@@ -34,7 +34,7 @@ private:
}; };
// Objetos y punteros // Objetos y punteros
Texture *playerTexture; // Textura con los graficos para las vidas //Texture *playerTexture; // Textura con los graficos para las vidas
AnimatedSprite *sprite; // Sprite para mostrar las vidas en el marcador AnimatedSprite *sprite; // Sprite para mostrar las vidas en el marcador
SDL_Renderer *renderer; // El renderizador de la ventana SDL_Renderer *renderer; // El renderizador de la ventana
Resource *resource; // Objeto con los recursos Resource *resource; // Objeto con los recursos