From b98d3731fa5587ff5e538c7356d282e147163c5e Mon Sep 17 00:00:00 2001 From: CaNaRdEoS Date: Sat, 12 Jul 2025 23:31:14 +0200 Subject: [PATCH] add combat_ui, bars --- game/Makefile | 4 +- game/define.h | 9 +++++ game/interface/combat_interface.cpp | 21 ++++++++++ game/interface/combat_interface.h | 2 + game/interface/interfaces.cpp | 6 --- game/interface/interfaces.h | 2 - game/interface/ui_elements.cpp | 59 ++++++++++++++++++++++++++-- game/interface/ui_elements.h | 23 +++++++++-- game/logic/combat.cpp | 4 +- game/logic/combat.h | 2 +- game/logic/ennemy.cpp | 2 +- game/main | Bin 0 -> 217832 bytes game/main.cpp | 6 +-- game/release | Bin 196632 -> 196632 bytes 14 files changed, 117 insertions(+), 23 deletions(-) create mode 100644 game/interface/combat_interface.cpp create mode 100644 game/interface/combat_interface.h create mode 100755 game/main diff --git a/game/Makefile b/game/Makefile index 58f2938..2863d06 100644 --- a/game/Makefile +++ b/game/Makefile @@ -7,10 +7,10 @@ newrelease: release runrelease clear play: runrelease clear build: - g++ main.cpp logic/utilities.cpp logic/player.cpp logic/ennemy.cpp logic/spells.cpp interface/interfaces.cpp logic/combat.cpp interface/ui_elements.cpp -lraylib -o main + g++ main.cpp logic/utilities.cpp logic/player.cpp logic/ennemy.cpp logic/spells.cpp interface/interfaces.cpp logic/combat.cpp interface/ui_elements.cpp interface/combat_interface.cpp -lraylib -o main release: - g++ main.cpp logic/utilities.cpp logic/player.cpp logic/ennemy.cpp logic/spells.cpp interface/interfaces.cpp logic/combat.cpp interface/ui_elements.cpp -lraylib -o release + g++ main.cpp logic/utilities.cpp logic/player.cpp logic/ennemy.cpp logic/spells.cpp interface/interfaces.cpp logic/combat.cpp interface/ui_elements.cpp interface/combat_interface.cpp -lraylib -o release runrelease: ./release diff --git a/game/define.h b/game/define.h index 2f1d115..28a6d5d 100644 --- a/game/define.h +++ b/game/define.h @@ -14,6 +14,15 @@ constexpr const int WATER = 2; constexpr const int EARTH = 3; constexpr const int EATHER = 4; +//Stats +constexpr const int HEALTH = 0; +constexpr const int SHIELD = 1; +constexpr const int SPEED = 2; +constexpr const int MANA = 3; +constexpr const int ENERGY = 4; +constexpr const int TAME = 5; +constexpr const int XP = 6; + // Combinaisons constexpr const int UP = 0; constexpr const int RIGHT = 1; diff --git a/game/interface/combat_interface.cpp b/game/interface/combat_interface.cpp new file mode 100644 index 0000000..4345a73 --- /dev/null +++ b/game/interface/combat_interface.cpp @@ -0,0 +1,21 @@ +#include +#include +#include +#include +#include "../define.h" +#include "../logic/structs.h" +#include "../logic/player.h" +#include "ui_elements.h" +#include "combat_interface.h" + +void display_combat_interface(Player& player_arg, std::vector& ennemies_arg, const std::vector& screen_arg) { + std::vector position = {0.5f, 0.5f}; + Bar player_health = create_bar(HEALTH, player_arg.max_health, player_arg.health, position, screen_arg); + inc_health(player_arg, -5);* + + //Dessin + BeginDrawing(); + ClearBackground(BLACK); + draw_bar(player_health); + EndDrawing(); +} \ No newline at end of file diff --git a/game/interface/combat_interface.h b/game/interface/combat_interface.h new file mode 100644 index 0000000..8dbea67 --- /dev/null +++ b/game/interface/combat_interface.h @@ -0,0 +1,2 @@ + +void display_combat_interface(Player& player_arg, std::vector& ennemies_arg, const std::vector& screen_arg); \ No newline at end of file diff --git a/game/interface/interfaces.cpp b/game/interface/interfaces.cpp index a188130..47b2d9f 100644 --- a/game/interface/interfaces.cpp +++ b/game/interface/interfaces.cpp @@ -5,12 +5,6 @@ #include "../logic/ennemy.h" #include "interfaces.h" -void display_menu() { - std::cout << "1. Search ennemies" << std::endl; - std::cout << "2. Quit" << std::endl; - std::cout << std::endl; -} - void display_combat_menu(const Player& player_arg, const std::vector& ennemies_arg) { std::cout << std::endl; print_player(player_arg); diff --git a/game/interface/interfaces.h b/game/interface/interfaces.h index 2a432ef..10e5716 100644 --- a/game/interface/interfaces.h +++ b/game/interface/interfaces.h @@ -1,5 +1,3 @@ - -void display_menu(); void display_combat_menu(const Player& player_arg, const std::vector& ennemies_arg); void display_ennemi_turn(const Ennemy& ennemy_arg); void display_ennemies(const std::vector& ennemies_arg); \ No newline at end of file diff --git a/game/interface/ui_elements.cpp b/game/interface/ui_elements.cpp index eaa5335..ec4100f 100644 --- a/game/interface/ui_elements.cpp +++ b/game/interface/ui_elements.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -5,14 +6,14 @@ #include "../define.h" #include "ui_elements.h" -Button create_button(int type_arg, int size_arg, const std::vector& position_arg, const char *text_arg, const std::vector& screen_arg) { +Button create_button(int type_arg, int size_arg, const std::vector& position_arg, std::string text_arg, const std::vector& screen_arg) { std::vector size = button_size(size_arg, screen_arg); float position_x = screen_arg[0] * position_arg[0] - size[0] / 2; float position_y = screen_arg[1] * position_arg[1] - size[1] / 2; Font font = GetFontDefault(); float font_size = text_size(size_arg); - float text_x = screen_arg[0] * position_arg[0] - MeasureText(text_arg, font_size) / 2; + float text_x = screen_arg[0] * position_arg[0] - MeasureText(text_arg.c_str(), font_size) / 2; float text_y = screen_arg[1] * position_arg[1] - font_size / 2; Text text; @@ -51,7 +52,7 @@ Button create_button(int type_arg, int size_arg, const std::vector& posit void draw_buttons(const std::vector