diff --git a/source/enter_name.cpp b/source/enter_name.cpp index 54a91c1..61687a2 100644 --- a/source/enter_name.cpp +++ b/source/enter_name.cpp @@ -13,7 +13,7 @@ EnterName::EnterName() void EnterName::init(const std::string &name) { // No se pasa ningún nombre - if (name == "") + if (name.empty()) { name_ = "A"; position_ = 0; @@ -24,7 +24,7 @@ void EnterName::init(const std::string &name) { name_ = name; position_ = name_.length(); - position_overflow_ = position_ >= NAME_LENGHT ? true : false; + position_overflow_ = position_ >= MAX_NAME_LENGHT ? true : false; } // Inicializa el vector de indices con el nombre y espacios @@ -42,15 +42,15 @@ void EnterName::incPosition() ++position_; - if (position_ >= NAME_LENGHT) + if (position_ >= MAX_NAME_LENGHT) { - position_ = NAME_LENGHT; // Mantenemos en el índice máximo válido. - position_overflow_ = true; // Activamos el flag de overflow. + position_ = MAX_NAME_LENGHT; // Mantenemos en el índice máximo válido. + position_overflow_ = true; // Activamos el flag de overflow. } else { // Copiamos el índice del carácter anterior si es posible. - if (position_ > 0 && position_ < NAME_LENGHT) + if (position_ > 0 && position_ < MAX_NAME_LENGHT) { character_index_[position_] = character_index_[position_ - 1]; } @@ -71,7 +71,7 @@ void EnterName::decPosition() { // Si estaba en overflow, lo desactivamos y mantenemos position_ en el máximo. position_overflow_ = false; - position_ = NAME_LENGHT - 1; + position_ = MAX_NAME_LENGHT - 1; } else { @@ -80,7 +80,7 @@ void EnterName::decPosition() --position_; // Limpiamos el carácter siguiente si el índice es válido. - if (position_ + 1 < NAME_LENGHT) + if (position_ + 1 < MAX_NAME_LENGHT) { character_index_[position_ + 1] = 0; } @@ -93,7 +93,7 @@ void EnterName::decPosition() } // Si position_ es menor que NAME_LENGHT, aseguramos que el overflow esté desactivado. - if (position_ < NAME_LENGHT) + if (position_ < MAX_NAME_LENGHT) { position_overflow_ = false; } @@ -102,7 +102,6 @@ void EnterName::decPosition() updateNameFromCharacterIndex(); } - // Incrementa el índice void EnterName::incIndex() { @@ -126,7 +125,7 @@ void EnterName::decIndex() { return; } - + --character_index_[position_]; if (character_index_[position_] < 0) { @@ -139,7 +138,7 @@ void EnterName::decIndex() void EnterName::updateNameFromCharacterIndex() { name_.clear(); - for (int i = 0; i < NAME_LENGHT; ++i) + for (int i = 0; i < MAX_NAME_LENGHT; ++i) { name_.push_back(character_list_[character_index_[i]]); } @@ -150,13 +149,13 @@ void EnterName::updateNameFromCharacterIndex() void EnterName::initCharacterIndex(const std::string &name) { // Rellena de espacios - for (size_t i = 0; i < NAME_LENGHT; ++i) + for (size_t i = 0; i < MAX_NAME_LENGHT; ++i) { character_index_[i] = 0; } // Coloca los índices en función de los caracteres que forman el nombre - for (size_t i = 0; i < name.substr(0, NAME_LENGHT).size(); ++i) + for (size_t i = 0; i < name.substr(0, MAX_NAME_LENGHT).size(); ++i) { character_index_[i] = findIndex(name.at(i)); } @@ -166,7 +165,11 @@ void EnterName::initCharacterIndex(const std::string &name) int EnterName::findIndex(char character) const { for (size_t i = 0; i < character_list_.size(); ++i) + { if (character == character_list_.at(i)) + { return i; + } + } return 0; } \ No newline at end of file diff --git a/source/enter_name.h b/source/enter_name.h index 3e209ac..1ae2435 100644 --- a/source/enter_name.h +++ b/source/enter_name.h @@ -3,7 +3,7 @@ #include #include "utils.h" -constexpr int NAME_LENGHT = 6; +constexpr int MAX_NAME_LENGHT = 6; /* Un array, "characterList", contiene la lista de caracteres @@ -17,11 +17,11 @@ constexpr int NAME_LENGHT = 6; class EnterName { private: - std::string character_list_; // Lista de todos los caracteres permitidos - std::string name_; // Nombre introducido - int position_ = 0; // Posición a editar del nombre - bool position_overflow_ = false; // Indica si hemos incrementado la posición más allá del límite - int character_index_[NAME_LENGHT]; // Indice de la lista para cada uno de los caracteres que forman el nombre + std::string character_list_; // Lista de todos los caracteres permitidos + std::string name_; // Nombre introducido + int position_ = 0; // Posición a editar del nombre + bool position_overflow_ = false; // Indica si hemos incrementado la posición más allá del límite + int character_index_[MAX_NAME_LENGHT]; // Indice de la lista para cada uno de los caracteres que forman el nombre // Actualiza el nombre a partir de la lista de índices void updateNameFromCharacterIndex(); diff --git a/source/moving_sprite.h b/source/moving_sprite.h index 8010031..4bab8e0 100644 --- a/source/moving_sprite.h +++ b/source/moving_sprite.h @@ -3,6 +3,7 @@ #include // Para SDL_Rect, SDL_Point #include // Para SDL_RendererFlip #include // Para shared_ptr +#include #include "sprite.h" // Para Sprite class Texture; // lines 8-8 diff --git a/source/player.cpp b/source/player.cpp index cd6c124..ae0b8d8 100644 --- a/source/player.cpp +++ b/source/player.cpp @@ -149,6 +149,11 @@ void Player::setInputEnteringName(InputType input) break; case InputType::START: last_enter_name_ = getRecordName(); + if (last_enter_name_.empty()) + { + const std::array NAMES = {"BAL1", "TABE", "DOC", "MON", "SAM1", "JORDI", "JDES", "PEPE"}; + last_enter_name_ = NAMES.at(rand() % NAMES.size()); + } break; default: break; @@ -166,9 +171,9 @@ void Player::move() pos_x_ += vel_x_; // Si el jugador abandona el area de juego por los laterales, restaura su posición - const float min_x = play_area_.x - 5; - const float max_x = play_area_.w + 5 - WIDTH_; - pos_x_ = std::clamp(pos_x_, min_x, max_x); + const float MIN_X = play_area_.x - 5; + const float MAX_X = play_area_.w + 5 - WIDTH_; + pos_x_ = std::clamp(pos_x_, MIN_X, MAX_X); shiftSprite(); break; @@ -176,12 +181,12 @@ void Player::move() case PlayerState::DYING: { // Si el cadaver abandona el area de juego por los laterales lo hace rebotar - const int x = player_sprite_->getPosX(); - const int min_x = play_area_.x; - const int max_x = play_area_.x + play_area_.w - WIDTH_; - if ((x < min_x) || (x > max_x)) + const int X = player_sprite_->getPosX(); + const int MIN_X = play_area_.x; + const int MAX_X = play_area_.x + play_area_.w - WIDTH_; + if ((X < MIN_X) || (X > MAX_X)) { - player_sprite_->setPosX(std::clamp(x, min_x, max_x)); + player_sprite_->setPosX(std::clamp(X, MIN_X, MAX_X)); player_sprite_->setVelX(-player_sprite_->getVelX()); playRandomBubbleSound(); } @@ -287,7 +292,6 @@ void Player::move() { pos_x_ = param.game.game_area.rect.w - WIDTH_; vel_x_ *= -1; - // setInputPlaying(InputType::LEFT); } } else @@ -297,7 +301,6 @@ void Player::move() { pos_x_ = param.game.game_area.rect.x; vel_x_ *= -1; - // setInputPlaying(InputType::RIGHT); } } @@ -356,17 +359,20 @@ void Player::setAnimation() // Establece la animación a partir de las cadenas if (firing_state_ == PlayerState::FIRING_NONE) - { // No esta disparando + { + // No esta disparando player_sprite_->setCurrentAnimation(a_walking); player_sprite_->setFlip(flip_walk); } else if (isCooling()) - { // Acaba de disparar + { + // Acaba de disparar player_sprite_->setCurrentAnimation(a_walking + "-" + a_cooling + "-cooldown"); player_sprite_->setFlip(flip_cooling); } else - { // Está disparando + { + // Está disparando player_sprite_->setCurrentAnimation(a_walking + "-" + a_firing); // Si dispara de lado, invierte el sprite segun hacia donde dispara // Si dispara recto, invierte el sprite segun hacia donde camina diff --git a/source/scoreboard.cpp b/source/scoreboard.cpp index b2daf02..e8cdbf8 100644 --- a/source/scoreboard.cpp +++ b/source/scoreboard.cpp @@ -263,7 +263,7 @@ void Scoreboard::fillPanelTextures() SDL_Rect rect = {enter_name_pos_.x, enter_name_pos_.y, 5, 7}; // Recorre todos los slots de letras del nombre - for (size_t j = 0; j < NAME_LENGHT; ++j) + for (size_t j = 0; j < MAX_NAME_LENGHT; ++j) { // Selecciona el color const Color color = j < selector_pos_[i] ? orange_soft_color.lighten() : Color(0xFF, 0xFF, 0xEB); @@ -380,7 +380,7 @@ void Scoreboard::recalculateAnchors() slot4_4_ = {col, row4}; // Primer cuadrado para poner el nombre de record - const int enter_name_lenght = text_scoreboard_->lenght(std::string(NAME_LENGHT, 'A')); + const int enter_name_lenght = text_scoreboard_->lenght(std::string(MAX_NAME_LENGHT, 'A')); enter_name_pos_.x = col - (enter_name_lenght / 2); enter_name_pos_.y = row4; diff --git a/source/smart_sprite.h b/source/smart_sprite.h index 9dd43f0..91da328 100644 --- a/source/smart_sprite.h +++ b/source/smart_sprite.h @@ -34,7 +34,7 @@ public: void update() override; // Dibuja el sprite - void render(); + void render() override; // Getters int getDestX() const { return dest_x_; }