Precàrrega de tots els recursos al inici del joc
8.000.000 de cherrypickings que he anat fent pel codi
This commit is contained in:
136
source/game.cpp
136
source/game.cpp
@@ -57,7 +57,7 @@ Game::Game(int player_id, int current_stage, bool demo)
|
||||
// Crea los objetos
|
||||
Scoreboard::init(renderer_);
|
||||
scoreboard_ = Scoreboard::get();
|
||||
fade_ = std::make_unique<Fade>(renderer_);
|
||||
fade_ = std::make_unique<Fade>();
|
||||
|
||||
background_ = std::make_unique<Background>(renderer_);
|
||||
explosions_ = std::make_unique<Explosions>();
|
||||
@@ -300,74 +300,58 @@ void Game::init(int player_id)
|
||||
// Carga los recursos necesarios para la sección 'Game'
|
||||
void Game::loadMedia()
|
||||
{
|
||||
std::cout << "\n** LOADING RESOURCES FOR GAME SECTION" << std::endl;
|
||||
|
||||
// Limpia
|
||||
{
|
||||
// Texturas
|
||||
game_text_textures_.clear();
|
||||
balloon_textures_.clear();
|
||||
explosions_textures_.clear();
|
||||
item_textures_.clear();
|
||||
player_textures_.clear();
|
||||
|
||||
// Animaciones
|
||||
player_animations_.clear();
|
||||
balloon_animations_.clear();
|
||||
explosions_animations_.clear();
|
||||
item_animations_.clear();
|
||||
}
|
||||
unloadMedia();
|
||||
|
||||
// Texturas
|
||||
{
|
||||
bullet_texture_ = std::make_shared<Texture>(renderer_, asset_->get("bullet.png"));
|
||||
bullet_texture_ = Resource::get()->getTexture("bullet.png");
|
||||
}
|
||||
|
||||
// Texturas - Game_text
|
||||
{
|
||||
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_1000_points.png")));
|
||||
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_2500_points.png")));
|
||||
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_5000_points.png")));
|
||||
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_powerup.png")));
|
||||
game_text_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("game_text_one_hit.png")));
|
||||
game_text_textures_.emplace_back(Resource::get()->getTexture("game_text_1000_points.png"));
|
||||
game_text_textures_.emplace_back(Resource::get()->getTexture("game_text_2500_points.png"));
|
||||
game_text_textures_.emplace_back(Resource::get()->getTexture("game_text_5000_points.png"));
|
||||
game_text_textures_.emplace_back(Resource::get()->getTexture("game_text_powerup.png"));
|
||||
game_text_textures_.emplace_back(Resource::get()->getTexture("game_text_one_hit.png"));
|
||||
}
|
||||
|
||||
// Texturas - Globos
|
||||
{
|
||||
balloon_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("balloon1.png")));
|
||||
balloon_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("balloon2.png")));
|
||||
balloon_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("balloon3.png")));
|
||||
balloon_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("balloon4.png")));
|
||||
balloon_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("powerball.png")));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon1.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon2.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon3.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("balloon4.png"));
|
||||
balloon_textures_.emplace_back(Resource::get()->getTexture("powerball.png"));
|
||||
}
|
||||
|
||||
// Texturas - Explosiones
|
||||
{
|
||||
explosions_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("explosion1.png")));
|
||||
explosions_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("explosion2.png")));
|
||||
explosions_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("explosion3.png")));
|
||||
explosions_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("explosion4.png")));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion1.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion2.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion3.png"));
|
||||
explosions_textures_.emplace_back(Resource::get()->getTexture("explosion4.png"));
|
||||
}
|
||||
|
||||
// Texturas - Items
|
||||
{
|
||||
item_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("item_points1_disk.png")));
|
||||
item_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("item_points2_gavina.png")));
|
||||
item_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("item_points3_pacmar.png")));
|
||||
item_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("item_clock.png")));
|
||||
item_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("item_coffee.png")));
|
||||
item_textures_.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("item_coffee_machine.png")));
|
||||
item_textures_.emplace_back(Resource::get()->getTexture("item_points1_disk.png"));
|
||||
item_textures_.emplace_back(Resource::get()->getTexture("item_points2_gavina.png"));
|
||||
item_textures_.emplace_back(Resource::get()->getTexture("item_points3_pacmar.png"));
|
||||
item_textures_.emplace_back(Resource::get()->getTexture("item_clock.png"));
|
||||
item_textures_.emplace_back(Resource::get()->getTexture("item_coffee.png"));
|
||||
item_textures_.emplace_back(Resource::get()->getTexture("item_coffee_machine.png"));
|
||||
}
|
||||
|
||||
// Texturas - Player1
|
||||
{
|
||||
std::vector<std::shared_ptr<Texture>> player_texture;
|
||||
player_texture.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("player1.gif")));
|
||||
player_texture.emplace_back(Resource::get()->getTexture("player1.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player1_pal1.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player1_pal2.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player1_pal3.gif"));
|
||||
|
||||
player_texture.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("player_power.gif")));
|
||||
player_texture.emplace_back(Resource::get()->getTexture("player_power.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player_power_pal.gif"));
|
||||
|
||||
player_textures_.push_back(player_texture);
|
||||
@@ -376,12 +360,12 @@ void Game::loadMedia()
|
||||
// Texturas - Player2
|
||||
{
|
||||
std::vector<std::shared_ptr<Texture>> player_texture;
|
||||
player_texture.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("player2.gif")));
|
||||
player_texture.emplace_back(Resource::get()->getTexture("player2.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player2_pal1.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player2_pal2.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player2_pal3.gif"));
|
||||
|
||||
player_texture.emplace_back(std::make_shared<Texture>(renderer_, asset_->get("player_power.gif")));
|
||||
player_texture.emplace_back(Resource::get()->getTexture("player_power.gif"));
|
||||
player_texture.back()->addPalette(asset_->get("player_power_pal.gif"));
|
||||
player_texture.back()->setPalette(1);
|
||||
|
||||
@@ -390,47 +374,44 @@ void Game::loadMedia()
|
||||
|
||||
// Animaciones -- Jugador
|
||||
{
|
||||
player_animations_.emplace_back(loadAnimations(asset_->get("player.ani")));
|
||||
player_animations_.emplace_back(loadAnimations(asset_->get("player_power.ani")));
|
||||
player_animations_.emplace_back(Resource::get()->getAnimation("player.ani"));
|
||||
player_animations_.emplace_back(Resource::get()->getAnimation("player_power.ani"));
|
||||
}
|
||||
|
||||
// Animaciones -- Globos
|
||||
{
|
||||
balloon_animations_.emplace_back(loadAnimations(asset_->get("balloon1.ani")));
|
||||
balloon_animations_.emplace_back(loadAnimations(asset_->get("balloon2.ani")));
|
||||
balloon_animations_.emplace_back(loadAnimations(asset_->get("balloon3.ani")));
|
||||
balloon_animations_.emplace_back(loadAnimations(asset_->get("balloon4.ani")));
|
||||
balloon_animations_.emplace_back(loadAnimations(asset_->get("powerball.ani")));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon1.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon2.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon3.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("balloon4.ani"));
|
||||
balloon_animations_.emplace_back(Resource::get()->getAnimation("powerball.ani"));
|
||||
}
|
||||
|
||||
// Animaciones -- Explosiones
|
||||
{
|
||||
explosions_animations_.emplace_back(loadAnimations(asset_->get("explosion1.ani")));
|
||||
explosions_animations_.emplace_back(loadAnimations(asset_->get("explosion2.ani")));
|
||||
explosions_animations_.emplace_back(loadAnimations(asset_->get("explosion3.ani")));
|
||||
explosions_animations_.emplace_back(loadAnimations(asset_->get("explosion4.ani")));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion1.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion2.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion3.ani"));
|
||||
explosions_animations_.emplace_back(Resource::get()->getAnimation("explosion4.ani"));
|
||||
}
|
||||
|
||||
// Animaciones -- Items
|
||||
{
|
||||
item_animations_.emplace_back(loadAnimations(asset_->get("item_points1_disk.ani")));
|
||||
item_animations_.emplace_back(loadAnimations(asset_->get("item_points2_gavina.ani")));
|
||||
item_animations_.emplace_back(loadAnimations(asset_->get("item_points3_pacmar.ani")));
|
||||
item_animations_.emplace_back(loadAnimations(asset_->get("item_clock.ani")));
|
||||
item_animations_.emplace_back(loadAnimations(asset_->get("item_coffee.ani")));
|
||||
item_animations_.emplace_back(loadAnimations(asset_->get("item_coffee_machine.ani")));
|
||||
item_animations_.emplace_back(Resource::get()->getAnimation("item_points1_disk.ani"));
|
||||
item_animations_.emplace_back(Resource::get()->getAnimation("item_points2_gavina.ani"));
|
||||
item_animations_.emplace_back(Resource::get()->getAnimation("item_points3_pacmar.ani"));
|
||||
item_animations_.emplace_back(Resource::get()->getAnimation("item_clock.ani"));
|
||||
item_animations_.emplace_back(Resource::get()->getAnimation("item_coffee.ani"));
|
||||
item_animations_.emplace_back(Resource::get()->getAnimation("item_coffee_machine.ani"));
|
||||
}
|
||||
|
||||
// Texto
|
||||
{
|
||||
text_ = std::make_unique<Text>(asset_->get("smb2.gif"), asset_->get("smb2.txt"), renderer_);
|
||||
text_big_ = std::make_unique<Text>(asset_->get("smb2_big.png"), asset_->get("smb2_big.txt"), renderer_);
|
||||
text_nokia2_ = std::make_unique<Text>(asset_->get("nokia2.png"), asset_->get("nokia2.txt"), renderer_);
|
||||
text_nokia2_big_ = std::make_unique<Text>(asset_->get("nokia_big2.png"), asset_->get("nokia_big2.txt"), renderer_);
|
||||
text_ = std::make_unique<Text>(Resource::get()->getTexture("smb2.gif"), Resource::get()->getTextFile("smb2.txt"));
|
||||
text_big_ = std::make_unique<Text>(Resource::get()->getTexture("smb2_big.png"), Resource::get()->getTextFile("smb2_big.txt"));
|
||||
text_nokia2_ = std::make_unique<Text>(Resource::get()->getTexture("nokia2.png"), Resource::get()->getTextFile("nokia2.txt"));
|
||||
text_nokia2_big_ = std::make_unique<Text>(Resource::get()->getTexture("nokia_big2.png"), Resource::get()->getTextFile("nokia_big2.txt"));
|
||||
}
|
||||
|
||||
std::cout << "** RESOURCES FOR GAME SECTION LOADED\n"
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
// Libera los recursos previamente cargados
|
||||
@@ -2082,27 +2063,6 @@ void Game::checkEvents()
|
||||
}
|
||||
}
|
||||
|
||||
// Carga las animaciones
|
||||
std::vector<std::string> Game::loadAnimations(const std::string &file_path)
|
||||
{
|
||||
std::vector<std::string> buffer;
|
||||
std::ifstream file(file_path);
|
||||
if (!file)
|
||||
{
|
||||
std::cerr << "Error: no se pudo abrir el archivo " << file_path << std::endl;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
std::string line;
|
||||
std::cout << "Animation loaded: " << file_path.substr(file_path.find_last_of("\\/") + 1) << std::endl;
|
||||
while (std::getline(file, line))
|
||||
{
|
||||
buffer.push_back(line);
|
||||
}
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
// Elimina todos los objetos contenidos en vectores
|
||||
void Game::deleteAllVectorObjects()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user