Afegit dos timeouts per a posar nom: uno total i altre que suma nomes quan no es toca res
This commit is contained in:
@@ -6,7 +6,8 @@ game.play_area.rect.x 0 # Posición X de la zona jugable
|
|||||||
game.play_area.rect.y 0 # Posición Y de la zona jugable
|
game.play_area.rect.y 0 # Posición Y de la zona jugable
|
||||||
game.play_area.rect.w 320 # Ancho de la zona jugable
|
game.play_area.rect.w 320 # Ancho de la zona jugable
|
||||||
game.play_area.rect.h 200 # Alto de la zona jugable
|
game.play_area.rect.h 200 # Alto de la zona jugable
|
||||||
game.enter_name_seconds 10 # Segundos para introducir el nombre al finalizar la partida si no se pulsa nada
|
game.name_entry_idle_time 10 # Segundos para introducir el nombre al finalizar la partida si no se pulsa nada
|
||||||
|
game.name_entry_total_time 60 # Segundos totales para introducir el nombre al finalizar la partida
|
||||||
|
|
||||||
## --- FADE ---
|
## --- FADE ---
|
||||||
fade.color 1F2B30 # Color hexadecimal para el efecto de fundido
|
fade.color 1F2B30 # Color hexadecimal para el efecto de fundido
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ game.play_area.rect.x 0 # Posición X de la zona jugable
|
|||||||
game.play_area.rect.y 0 # Posición Y de la zona jugable
|
game.play_area.rect.y 0 # Posición Y de la zona jugable
|
||||||
game.play_area.rect.w 320 # Ancho de la zona jugable
|
game.play_area.rect.w 320 # Ancho de la zona jugable
|
||||||
game.play_area.rect.h 216 # Alto de la zona jugable
|
game.play_area.rect.h 216 # Alto de la zona jugable
|
||||||
game.enter_name_seconds 10 # Segundos para introducir el nombre al finalizar la partida si no se pulsa nada
|
game.name_entry_idle_time 10 # Segundos para introducir el nombre al finalizar la partida si no se pulsa nada
|
||||||
|
game.name_entry_total_time 60 # Segundos totales para introducir el nombre al finalizar la partida
|
||||||
|
|
||||||
## --- FADE ---
|
## --- FADE ---
|
||||||
fade.color 1F2B30 # Color hexadecimal para el efecto de fundido
|
fade.color 1F2B30 # Color hexadecimal para el efecto de fundido
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ void initParam()
|
|||||||
param.game.item_size = 20;
|
param.game.item_size = 20;
|
||||||
param.game.game_area.rect = {0, 0, param.game.width, param.game.height};
|
param.game.game_area.rect = {0, 0, param.game.width, param.game.height};
|
||||||
param.game.play_area.rect = {0, 0, param.game.width, 216};
|
param.game.play_area.rect = {0, 0, param.game.width, 216};
|
||||||
param.game.enter_name_seconds = 30;
|
param.game.name_entry_idle_time = 10;
|
||||||
|
param.game.name_entry_total_time = 60;
|
||||||
param.game.speed = 15;
|
param.game.speed = 15;
|
||||||
precalculateZones();
|
precalculateZones();
|
||||||
|
|
||||||
@@ -155,9 +156,14 @@ bool setParams(const std::string &var, const std::string &value)
|
|||||||
param.game.play_area.rect.h = std::stoi(value);
|
param.game.play_area.rect.h = std::stoi(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (var == "game.enter_name_seconds")
|
else if (var == "game.name_entry_idle_time")
|
||||||
{
|
{
|
||||||
param.game.enter_name_seconds = std::stoi(value);
|
param.game.name_entry_idle_time = std::stoi(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (var == "game.name_entry_total_time")
|
||||||
|
{
|
||||||
|
param.game.name_entry_total_time = std::stoi(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// FADE
|
// FADE
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ struct ParamGame
|
|||||||
float item_size; // Tamaño de los ítems del juego
|
float item_size; // Tamaño de los ítems del juego
|
||||||
Zone play_area; // Rectángulo con la posición de la zona de juego
|
Zone play_area; // Rectángulo con la posición de la zona de juego
|
||||||
Zone game_area; // Rectángulo con las dimensiones del juego
|
Zone game_area; // Rectángulo con las dimensiones del juego
|
||||||
int enter_name_seconds; // Duración en segundos para introducir el nombre al finalizar la partida
|
int name_entry_idle_time; // Segundos para introducir el nombre al finalizar la partida si no se pulsa nada
|
||||||
|
int name_entry_total_time; // Segundos totales para introducir el nombre al finalizar la partida
|
||||||
Uint32 speed; // Velocidad a la que transcurre el juego
|
Uint32 speed; // Velocidad a la que transcurre el juego
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
#include "texture.h" // Para Texture
|
#include "texture.h" // Para Texture
|
||||||
#include "manage_hiscore_table.h" // Para ManageHiScoreTable, HiScoreEntry
|
#include "manage_hiscore_table.h" // Para ManageHiScoreTable, HiScoreEntry
|
||||||
|
|
||||||
|
|
||||||
// Constructor
|
// Constructor
|
||||||
Player::Player(int id, float x, int y, bool demo, SDL_FRect &play_area, std::vector<std::shared_ptr<Texture>> texture, const std::vector<std::vector<std::string>> &animations)
|
Player::Player(int id, float x, int y, bool demo, SDL_FRect &play_area, std::vector<std::shared_ptr<Texture>> texture, const std::vector<std::vector<std::string>> &animations)
|
||||||
: player_sprite_(std::make_unique<AnimatedSprite>(texture[0], animations[0])),
|
: player_sprite_(std::make_unique<AnimatedSprite>(texture[0], animations[0])),
|
||||||
@@ -53,8 +52,9 @@ void Player::init()
|
|||||||
coffees_ = 0;
|
coffees_ = 0;
|
||||||
continue_ticks_ = 0;
|
continue_ticks_ = 0;
|
||||||
continue_counter_ = 10;
|
continue_counter_ = 10;
|
||||||
enter_name_ticks_ = 0;
|
name_entry_ticks_ = 0;
|
||||||
enter_name_counter_ = param.game.enter_name_seconds;
|
name_entry_idle_counter_ = 0;
|
||||||
|
name_entry_total_counter_ = 0;
|
||||||
shiftColliders();
|
shiftColliders();
|
||||||
vel_x_ = 0;
|
vel_x_ = 0;
|
||||||
vel_y_ = 0;
|
vel_y_ = 0;
|
||||||
@@ -156,6 +156,7 @@ void Player::setInputEnteringName(InputAction input)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
name_entry_idle_counter_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mueve el jugador a la posición y animación que le corresponde
|
// Mueve el jugador a la posición y animación que le corresponde
|
||||||
@@ -738,9 +739,9 @@ void Player::updateEnterNameCounter()
|
|||||||
if (playing_state_ == PlayerState::ENTERING_NAME || playing_state_ == PlayerState::ENTERING_NAME_GAME_COMPLETED)
|
if (playing_state_ == PlayerState::ENTERING_NAME || playing_state_ == PlayerState::ENTERING_NAME_GAME_COMPLETED)
|
||||||
{
|
{
|
||||||
constexpr int TICKS_SPEED = 1000;
|
constexpr int TICKS_SPEED = 1000;
|
||||||
if (SDL_GetTicks() - enter_name_ticks_ > TICKS_SPEED)
|
if (SDL_GetTicks() - name_entry_ticks_ > TICKS_SPEED)
|
||||||
{
|
{
|
||||||
decEnterNameCounter();
|
decNameEntryCounter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -751,7 +752,7 @@ void Player::updateShowingName()
|
|||||||
if (playing_state_ == PlayerState::SHOWING_NAME)
|
if (playing_state_ == PlayerState::SHOWING_NAME)
|
||||||
{
|
{
|
||||||
constexpr int TICKS_SPEED = 5000;
|
constexpr int TICKS_SPEED = 5000;
|
||||||
if (SDL_GetTicks() - enter_name_ticks_ > TICKS_SPEED)
|
if (SDL_GetTicks() - name_entry_ticks_ > TICKS_SPEED)
|
||||||
{
|
{
|
||||||
game_completed_ ? setPlayingState(PlayerState::LEAVING_SCREEN) : setPlayingState(PlayerState::CONTINUE);
|
game_completed_ ? setPlayingState(PlayerState::LEAVING_SCREEN) : setPlayingState(PlayerState::CONTINUE);
|
||||||
}
|
}
|
||||||
@@ -774,13 +775,20 @@ void Player::decContinueCounter()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Decrementa el contador de entrar nombre
|
// Decrementa el contador de entrar nombre
|
||||||
void Player::decEnterNameCounter()
|
void Player::decNameEntryCounter()
|
||||||
{
|
{
|
||||||
enter_name_ticks_ = SDL_GetTicks();
|
name_entry_ticks_ = SDL_GetTicks();
|
||||||
--enter_name_counter_;
|
|
||||||
if (enter_name_counter_ < 0)
|
// Actualiza contadores
|
||||||
|
++name_entry_idle_counter_;
|
||||||
|
++name_entry_total_counter_;
|
||||||
|
|
||||||
|
// Comprueba los contadores
|
||||||
|
if ((name_entry_total_counter_ >= param.game.name_entry_total_time) ||
|
||||||
|
(name_entry_idle_counter_ >= param.game.name_entry_idle_time))
|
||||||
{
|
{
|
||||||
enter_name_counter_ = param.game.enter_name_seconds;
|
name_entry_total_counter_ = 0;
|
||||||
|
name_entry_idle_counter_ = 0;
|
||||||
if (playing_state_ == PlayerState::ENTERING_NAME)
|
if (playing_state_ == PlayerState::ENTERING_NAME)
|
||||||
{
|
{
|
||||||
last_enter_name_ = getRecordName();
|
last_enter_name_ = getRecordName();
|
||||||
|
|||||||
@@ -191,9 +191,10 @@ private:
|
|||||||
int scoreboard_panel_ = 0; // Panel del marcador asociado al jugador
|
int scoreboard_panel_ = 0; // Panel del marcador asociado al jugador
|
||||||
std::string name_; // Nombre del jugador
|
std::string name_; // Nombre del jugador
|
||||||
int controller_index_ = 0; // Índice del array de mandos que utilizará para moverse
|
int controller_index_ = 0; // Índice del array de mandos que utilizará para moverse
|
||||||
bool demo_; // Para que el jugador sepa si está en el modo demostración
|
bool demo_ = false; // Para que el jugador sepa si está en el modo demostración
|
||||||
int enter_name_counter_; // Contador para poner nombre
|
int name_entry_idle_counter_ = 0; // Contador para poner nombre
|
||||||
Uint32 enter_name_ticks_ = 0; // Variable para poder cambiar el contador de poner nombre en función del tiempo
|
int name_entry_total_counter_ = 0; // Segundos totales que lleva acumulados poniendo nombre
|
||||||
|
Uint32 name_entry_ticks_ = 0; // Variable para poder cambiar el contador de poner nombre en función del tiempo
|
||||||
Uint32 showing_name_ticks_ = 0; // Tiempo en el que se entra al estado SHOWING_NAME
|
Uint32 showing_name_ticks_ = 0; // Tiempo en el que se entra al estado SHOWING_NAME
|
||||||
int step_counter_ = 0; // Cuenta los pasos para los estados en los que camina automáticamente
|
int step_counter_ = 0; // Cuenta los pasos para los estados en los que camina automáticamente
|
||||||
bool game_completed_ = false; // Indica si ha completado el juego
|
bool game_completed_ = false; // Indica si ha completado el juego
|
||||||
@@ -207,7 +208,7 @@ private:
|
|||||||
void updateContinueCounter(); // Actualiza el contador de continue
|
void updateContinueCounter(); // Actualiza el contador de continue
|
||||||
void updateEnterNameCounter(); // Actualiza el contador de entrar nombre
|
void updateEnterNameCounter(); // Actualiza el contador de entrar nombre
|
||||||
void updateShowingName(); // Actualiza el estado SHOWING_NAME
|
void updateShowingName(); // Actualiza el estado SHOWING_NAME
|
||||||
void decEnterNameCounter(); // Decrementa el contador de entrar nombre
|
void decNameEntryCounter(); // Decrementa el contador de entrar nombre
|
||||||
void updateScoreboard(); // Actualiza el panel del marcador
|
void updateScoreboard(); // Actualiza el panel del marcador
|
||||||
void setScoreboardMode(ScoreboardMode mode); // Cambia el modo del marcador
|
void setScoreboardMode(ScoreboardMode mode); // Cambia el modo del marcador
|
||||||
void playSound(const std::string &name); // Hace sonar un sonido
|
void playSound(const std::string &name); // Hace sonar un sonido
|
||||||
|
|||||||
Reference in New Issue
Block a user