From 5e817ef1d00284a419a2a09deafdb02fda198988 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 4 Jan 2025 10:04:49 +0100 Subject: [PATCH] Afegit el tamany de la coffee_machine als parametres --- data/config/param_320x240.txt | 2 ++ data/config/param_320x256.txt | 18 ++++++++++-------- source/item.cpp | 10 +++++----- source/param.cpp | 12 ++++++++++++ source/param.h | 9 ++++++--- 5 files changed, 35 insertions(+), 16 deletions(-) diff --git a/data/config/param_320x240.txt b/data/config/param_320x240.txt index c0c06f1..067440e 100644 --- a/data/config/param_320x240.txt +++ b/data/config/param_320x240.txt @@ -1,5 +1,7 @@ ## GAME game.item_size 20 # Tamaño de los items del juego +game.coffee_machine_w 28 # Ancho de la máquina de café +game.coffee_machine_h 37 # Alto de la máquina de café game.width 320 # Ancho de la resolucion nativa del juego game.height 240 # Alto de la resolucion nativa del juego game.play_area.rect.x 0 # Rectangulo con la posición de la zona de juego diff --git a/data/config/param_320x256.txt b/data/config/param_320x256.txt index 4908f1d..874eaa4 100644 --- a/data/config/param_320x256.txt +++ b/data/config/param_320x256.txt @@ -1,12 +1,14 @@ ## GAME -game.item_size 20 # Tamaño de los items del juego -game.width 320 # Ancho de la resolucion nativa del juego -game.height 256 # Alto de la resolucion nativa del juego -game.play_area.rect.x 0 # Rectangulo con la posición de la zona de juego -game.play_area.rect.y 0 # Rectangulo con la posición de la zona de juego -game.play_area.rect.w 320 # Rectangulo con la posición de la zona de juego -game.play_area.rect.h 216 # Rectangulo con la posición de la zona de juego -game.enter_name_seconds 60 # Duración en segundos para introducir el nombre al finalizar la partida +game.item_size 20 # Tamaño de los items del juego +game.coffee_machine_w 28 # Ancho de la máquina de café +game.coffee_machine_h 37 # Alto de la máquina de café +game.width 320 # Ancho de la resolucion nativa del juego +game.height 256 # Alto de la resolucion nativa del juego +game.play_area.rect.x 0 # Rectangulo con la posición de la zona de juego +game.play_area.rect.y 0 # Rectangulo con la posición de la zona de juego +game.play_area.rect.w 320 # Rectangulo con la posición de la zona de juego +game.play_area.rect.h 216 # Rectangulo con la posición de la zona de juego +game.enter_name_seconds 60 # Duración en segundos para introducir el nombre al finalizar la partida ## FADE fade.num_squares_width 160 diff --git a/source/item.cpp b/source/item.cpp index 109678f..86128c4 100644 --- a/source/item.cpp +++ b/source/item.cpp @@ -14,10 +14,10 @@ Item::Item(ItemType type, float x, float y, SDL_Rect &play_area, std::shared_ptr { case ItemType::COFFEE_MACHINE: { - width_ = 28; - height_ = 37; + width_ = param.game.coffee_machine_w; + height_ = param.game.coffee_machine_h; pos_x_ = ((static_cast(x) + (play_area.w / 2)) % (play_area.w - width_ - 5)) + 2; - pos_y_ = -height_; + pos_y_ = y; vel_x_ = 0.0f; vel_y_ = -0.1f; accel_y_ = 0.1f; @@ -26,8 +26,8 @@ Item::Item(ItemType type, float x, float y, SDL_Rect &play_area, std::shared_ptr } default: { - width_ = 20; - height_ = 20; + width_ = param.game.item_size; + height_ = param.game.item_size; pos_x_ = x; pos_y_ = y; vel_x_ = -1.0f + ((rand() % 5) * 0.5f); diff --git a/source/param.cpp b/source/param.cpp index 23fd92d..56cfee9 100644 --- a/source/param.cpp +++ b/source/param.cpp @@ -21,6 +21,8 @@ void initParam() param.game.width = 320; param.game.height = 256; param.game.item_size = 20; + param.game.coffee_machine_w = 28; + param.game.coffee_machine_h = 37; 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.enter_name_seconds = 30; @@ -124,6 +126,16 @@ bool setParams(const std::string &var, const std::string &value) param.game.item_size = std::stoi(value); } + else if (var == "game.coffee_machine_w") + { + param.game.coffee_machine_w = std::stoi(value); + } + + else if (var == "game.coffee_machine_h") + { + param.game.coffee_machine_h = std::stoi(value); + } + else if (var == "game.play_area.rect.x") { param.game.play_area.rect.x = std::stoi(value); diff --git a/source/param.h b/source/param.h index e39663f..1e51729 100644 --- a/source/param.h +++ b/source/param.h @@ -11,6 +11,8 @@ struct ParamGame int width; // Ancho de la resolucion nativa del juego int height; // Alto de la resolucion nativa del juego int item_size; // Tamaño de los items del juego + int coffee_machine_w; // Ancho de la máquina de café + int coffee_machine_h; // Alto de la máquina de café Zone play_area; // Rectangulo con la posición de la zona de juego Zone game_area; // Rectangulo con las dimensiones del juego int enter_name_seconds; // Duración en segundos para introducir el nombre al finalizar la partida @@ -63,7 +65,8 @@ struct ParamNotification }; // Estructura para almacenar todos los parámetros del juego -struct Param { +struct Param +{ ParamGame game; ParamFade fade; SDL_Rect scoreboard; @@ -72,14 +75,14 @@ struct Param { std::vector balloon; ParamNotification notification; - Param() : game(), fade(), scoreboard(), title(), background(), notification() { + Param() : game(), fade(), scoreboard(), title(), background(), notification() + { balloon.reserve(4); } }; extern Param param; - extern Param param; // Establece valores para los parametros a partir de un fichero de texto