Ja es por canviar el jugador que maneja el teclat "en calent" desde el service menu

This commit is contained in:
2025-08-08 13:21:14 +02:00
parent de5e99c932
commit add9f8df7a
7 changed files with 133 additions and 60 deletions

View File

@@ -72,6 +72,9 @@ Credits::~Credits() {
SDL_DestroyTexture(canvas_);
resetVolume();
Audio::get()->stopMusic();
// Desregistra los jugadores de Options
Options::keyboard.clearPlayers();
}
// Bucle principal
@@ -326,36 +329,29 @@ void Credits::initPlayers() {
std::vector<std::vector<std::string>> player_animations; // Vector con las animaciones del jugador
// Texturas - Player1
{
std::vector<std::shared_ptr<Texture>> player_texture;
player_texture.emplace_back(Resource::get()->getTexture("player1.gif"));
player_texture.emplace_back(Resource::get()->getTexture("player1_power.png"));
player_textures.push_back(player_texture);
}
std::vector<std::shared_ptr<Texture>> player1_textures;
player1_textures.emplace_back(Resource::get()->getTexture("player1.gif"));
player1_textures.emplace_back(Resource::get()->getTexture("player1_power.png"));
player_textures.push_back(player1_textures);
// Texturas - Player2
{
std::vector<std::shared_ptr<Texture>> player_texture;
player_texture.emplace_back(Resource::get()->getTexture("player2.gif"));
player_texture.emplace_back(Resource::get()->getTexture("player2_power.png"));
player_textures.push_back(player_texture);
}
std::vector<std::shared_ptr<Texture>> player2_textures;
player2_textures.emplace_back(Resource::get()->getTexture("player2.gif"));
player2_textures.emplace_back(Resource::get()->getTexture("player2_power.png"));
player_textures.push_back(player2_textures);
// Animaciones -- Jugador
{
player_animations.emplace_back(Resource::get()->getAnimation("player.ani"));
player_animations.emplace_back(Resource::get()->getAnimation("player_power.ani"));
}
player_animations.emplace_back(Resource::get()->getAnimation("player.ani"));
player_animations.emplace_back(Resource::get()->getAnimation("player_power.ani"));
// Crea los dos jugadores
constexpr int PLAYER_WIDTH = 32;
const int Y = play_area_.y + play_area_.h - PLAYER_WIDTH;
const int Y = play_area_.y + play_area_.h - Player::WIDTH;
constexpr bool DEMO = false;
constexpr int AWAY_DISTANCE = 700;
Player::Config config_player1;
config_player1.id = Player::Id::PLAYER1;
config_player1.x = play_area_.x - AWAY_DISTANCE - PLAYER_WIDTH;
config_player1.x = play_area_.x - AWAY_DISTANCE - Player::WIDTH;
config_player1.y = Y;
config_player1.demo = DEMO;
config_player1.play_area = &play_area_;
@@ -380,6 +376,10 @@ void Credits::initPlayers() {
players_.emplace_back(std::make_unique<Player>(config_player2));
players_.back()->setWalkingState(Player::State::WALKING_LEFT);
players_.back()->setPlayingState(Player::State::CREDITS);
// Registra los jugadores en Options
Options::keyboard.addPlayer(players_.at(0));
Options::keyboard.addPlayer(players_.at(1));
}
// Actualiza los rectangulos negros