Two main GUI elements are placed for the left side status and the bottom combat UIs.

This commit is contained in:
Zed A. Shaw 2025-02-12 17:55:21 -05:00
parent 1790eec697
commit be4d0d51de
4 changed files with 123 additions and 27 deletions

33
gui.hpp
View file

@ -9,6 +9,36 @@
#include "map_view.hpp"
namespace gui {
class StatusUI : public Panel {
public:
GameLevel $level;
StatusUI(GameLevel level) :
Panel(43, 200, 29, 25, false),
$level(level)
{
default_bg = sf::Color{30,30,30};
}
void create_render();
void update_level(GameLevel &level) { $level = level; }
};
class CombatUI : public Panel {
public:
GameLevel $level;
CombatUI(GameLevel level) :
Panel(RAY_VIEW_X, RAY_VIEW_HEIGHT, 89, 6, false),
$level(level)
{
default_bg = sf::Color{30,30,30};
}
void create_render();
void update_level(GameLevel &level) { $level = level; }
};
enum class State {
START,
MOVING,
@ -45,6 +75,8 @@ namespace gui {
SFMLRender $renderer;
GameLevel $level;
MapViewUI $map_view;
CombatUI $combat_view;
StatusUI $status_view;
CameraLOL $camera;
sf::Font $font;
sf::Text $text;
@ -67,6 +99,7 @@ namespace gui {
void try_move(int dir, bool strafe);
void keyboard();
void draw_weapon();
void draw_stats();
void draw_gui();
void render();
void mouse();