From 8b3d9eb842db6d88b7f33c1c446769e6cdc922cf Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Fri, 25 Sep 2015 03:02:08 +0200 Subject: [PATCH] WIP HUD --- assets/Textures/GUI/HUD/LevelIndicatorBG.png | Bin 0 -> 56101 bytes assets/Textures/GUI/HUD/ScoreIndicatorBG.png | Bin 0 -> 66743 bytes include/Core/Engine.h | 4 +- include/GUI/Frame.h | 3 + include/Game/HUD.h | 37 +++++ include/Game/LevelSystem.h.orig | 149 ------------------- include/Game/MainMenu.h | 13 ++ include/Game/MainMenuMain.h | 12 ++ 8 files changed, 68 insertions(+), 150 deletions(-) create mode 100644 assets/Textures/GUI/HUD/LevelIndicatorBG.png create mode 100644 assets/Textures/GUI/HUD/ScoreIndicatorBG.png create mode 100644 include/Game/HUD.h delete mode 100755 include/Game/LevelSystem.h.orig diff --git a/assets/Textures/GUI/HUD/LevelIndicatorBG.png b/assets/Textures/GUI/HUD/LevelIndicatorBG.png new file mode 100644 index 0000000000000000000000000000000000000000..46cc1b37488efd01896b8780d1f5d38928b02cc1 GIT binary patch literal 56101 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 literal 0 HcmV?d00001 diff --git a/assets/Textures/GUI/HUD/ScoreIndicatorBG.png b/assets/Textures/GUI/HUD/ScoreIndicatorBG.png new file mode 100644 index 0000000000000000000000000000000000000000..db97909b26cd060b8262b6146eaad1b804ac6048 GIT binary patch literal 66743 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 m_FrameStack = new GUI::Frame(m_EventBroker.get()); - m_FrameStack->Width = 1920; + m_FrameStack->Width = 675; m_FrameStack->Height = 1080; + auto hud = new GUI::HUD(m_FrameStack, "HUD"); auto menu = new GUI::MainMenu(m_FrameStack, "MainMenu"); m_InputManager = std::make_shared(m_Renderer->Window(), m_EventBroker); diff --git a/include/GUI/Frame.h b/include/GUI/Frame.h index 8594ead..f7e302c 100644 --- a/include/GUI/Frame.h +++ b/include/GUI/Frame.h @@ -36,6 +36,7 @@ public: // Set up a base frame with an event broker Frame(dd::EventBroker* eventBroker) : EventBroker(eventBroker) + , BaseFrame(this) , Rectangle() { } // Create a frame as a child @@ -77,6 +78,7 @@ public: parent->AddChild(this); m_Parent = parent; EventBroker = parent->EventBroker; + BaseFrame = parent->BaseFrame; } void AddChild(Frame* child) @@ -236,6 +238,7 @@ public: protected: dd::EventBroker* EventBroker; + Frame* BaseFrame = nullptr; std::string m_Name = "UIParent"; int m_Layer = 0; diff --git a/include/Game/HUD.h b/include/Game/HUD.h new file mode 100644 index 0000000..e660a9e --- /dev/null +++ b/include/Game/HUD.h @@ -0,0 +1,37 @@ +#ifndef GUI_HUD_H__ +#define GUI_HUD_H__ + +#include "GUI/Frame.h" +#include "GUI/TextureFrame.h" + +namespace dd +{ +namespace GUI +{ + +class HUD : public Frame +{ +public: + HUD(Frame* parent, std::string name) + : Frame(parent, name) + { + Width = parent->Width; + Height = parent->Height; + + m_LevelIndicator = new GUI::TextureFrame(this, "HUDLevelIndicator"); + m_LevelIndicator->SetTexture("Textures/GUI/HUD/LevelIndicatorBG.png"); + + m_ScoreIndicator = new GUI::TextureFrame(this, "HUDScoreIndicator"); + m_ScoreIndicator->SetTexture("Textures/GUI/HUD/ScoreIndicatorBG.png"); + m_ScoreIndicator->SetRight(Right()); + } + +private: + TextureFrame* m_LevelIndicator = nullptr; + TextureFrame* m_ScoreIndicator = nullptr; +}; + +} +} +#endif + diff --git a/include/Game/LevelSystem.h.orig b/include/Game/LevelSystem.h.orig deleted file mode 100755 index 5e56ad3..0000000 --- a/include/Game/LevelSystem.h.orig +++ /dev/null @@ -1,149 +0,0 @@ -// -// Created by Adniklastrator on 2015-09-09. -// - -#ifndef DAYDREAM_LEVELSYSTEM_H -#define DAYDREAM_LEVELSYSTEM_H - -#include "Core/System.h" -#include "Core/CTransform.h" -#include "Core/EventBroker.h" -#include "Core/World.h" -#include "Rendering/CSprite.h" -#include "Rendering/CModel.h" -#include "Game/CBrick.h" -#include "Game/CBall.h" -#include "Game/CLife.h" -#include "Game/CPowerUp.h" -#include "Game/EStageCleared.h" -#include "Game/ELifeLost.h" -#include "Game/EResetBall.h" -#include "Game/EScoreEvent.h" -<<<<<<< HEAD -#include "Physics/CRectangleShape.h" -======= -#include "Game/EMultiBall.h" -#include "Game/EGameOver.h" -#include "Game/ECreatePowerUp.h" -#include "Game/EPowerUpTaken.h" -#include "Game/Bricks/CPowerUpBrick.h" -#include "Physics/CBoxShape.h" ->>>>>>> 72413dc0a93bd3a2f6ab9fa7e19bbc3b846232db -#include "Physics/CPhysics.h" -#include "Physics/CCircleShape.h" -#include "Physics/ESetImpulse.h" -#include "Physics/EContact.h" -#include "Sound/CCollisionSound.h" -#include "Game/PadSystem.h" -#include -#include -#include - -namespace dd -{ - -namespace Systems -{ - - // Me trying things out. -class Level -{ -public: - int levelRows; - int levelLines; - int levelSpaceBetweenBricks; - int levelSpaceToEdge; - int bricks[]; -}; - -class LevelSystem : public System -{ -public: - LevelSystem(World* world, std::shared_ptr eventBroker) - : System(world, eventBroker) - { } - - void Initialize() override; - - void CreateBasicLevel(int, int, glm::vec2, float); - void CreateLife(int); - void SaveLevel(int, int, glm::vec2, int); // Shouldn't be here, but I'm experimenting. - void LoadLevel(char[20]); - void CreateBrick(int, int, glm::vec2, float, int); - void ProcessCollision(); - - void OnEntityRemoved(EntityID entity); - - void EndLevel(); - - void Update(double dt) override; - void UpdateEntity(double dt, EntityID entity, EntityID parent) override; - - bool Restarting() const { return m_Restarting; } - void SetRestarting(const bool& restarting) { m_Restarting = restarting; } - bool Initialized() const { return m_Initialized; } - void SetInitialized(const bool& initialized) { m_Initialized = initialized; } - int& Lives() { return m_Lives; } - void SetLives(const int& lives) { m_Lives = lives; } - int& PastLives() { return m_PastLives; } - void SetPastLives(const int& pastLives) { m_PastLives = pastLives; } - int& MultiBalls() { return m_MultiBalls; } - void SetMultiBalls(const int& multiBalls) { m_MultiBalls = multiBalls; } - int& PowerUps() { return m_PowerUps; } - void SetPowerUps(const int& powerUps) { m_PowerUps = powerUps; } - int& Score() { return m_Score; } - void SetScore(const int& score) { m_Score = score; } - int& NumberOfBricks() { return m_NumberOfBricks; } - void SetNumberOfBricks(const int& numberOfBricks) { m_NumberOfBricks = numberOfBricks; } - int& Rows() { return m_Rows; } - void SetRows(const int& rows) { m_Rows = rows; } - int& Lines() { return m_Lines; } - void SetLines(const int& lines) { m_Lines = lines; } - float& SpaceToEdge() { return m_SpaceToEdge; } - void SetSpaceToEdge(const float& spaceToEdge) { m_SpaceToEdge = spaceToEdge; } - - glm::vec2& SpaceBetweenBricks() { return m_SpaceBetweenBricks; } - void SetSpaceBetweenBricks(const glm::vec2& spaceBetweenBricks) { m_SpaceBetweenBricks = spaceBetweenBricks; } - float& EdgeX() { return m_EdgeX; } - void SetEdgeX(const float& edgeX) { m_EdgeX = edgeX; } - float& EdgeY() { return m_EdgeY; } - void SetEdgeY(const float& edgeY) { m_EdgeY = edgeY; } - -private: - bool m_Restarting = false; - bool m_Initialized = false; - int m_Lives = 3; - int m_PastLives = 3; - int m_MultiBalls = 0; - int m_PowerUps = 0; - int m_Score = 0; - int m_NumberOfBricks; - int m_Rows = 6; - int m_Lines = 7; - float m_SpaceToEdge = 0.25f; - glm::vec2 m_SpaceBetweenBricks = glm::vec2(1, 0.4); - float m_EdgeX = 3.2f; - float m_EdgeY = 5.2f; - - dd::EventRelay m_EContact; - dd::EventRelay m_ELifeLost; - dd::EventRelay m_EScoreEvent; - dd::EventRelay m_EMultiBall; - dd::EventRelay m_ECreatePowerUp; - dd::EventRelay m_EPowerUpTaken; - dd::EventRelay m_EStageCleared; - - bool OnContact(const dd::Events::Contact &event); - bool OnLifeLost(const dd::Events::LifeLost &event); - bool OnScoreEvent(const dd::Events::ScoreEvent &event); - bool OnMultiBall(const dd::Events::MultiBall &event); - bool OnCreatePowerUp(const dd::Events::CreatePowerUp &event); - bool OnPowerUpTaken(const dd::Events::PowerUpTaken &event); - bool OnStageCleared(const dd::Events::StageCleared &event); -}; - -} - -} - -#endif //DAYDREAM_LEVELSYSTEM_H diff --git a/include/Game/MainMenu.h b/include/Game/MainMenu.h index f2c6a02..a9afe4c 100644 --- a/include/Game/MainMenu.h +++ b/include/Game/MainMenu.h @@ -4,6 +4,7 @@ #include "GUI/TextureFrame.h" #include "Game/MainMenuMain.h" #include "Game/MainMenuOptions.h" +#include "Core/EKeyUp.h" namespace dd { @@ -32,12 +33,24 @@ public: m_MainMenuOptions = new GUI::MainMenuOptions(this, "MainMenuOptions"); m_MainMenuOptions->SetLeft(m_LeftBanner->Right()); m_MainMenuOptions->SetTop(m_MainMenuMain->Bottom()); + + EVENT_SUBSCRIBE_MEMBER(m_EKeyUp, &MainMenu::OnKeyUp); } private: TextureFrame* m_LeftBanner; MainMenuMain* m_MainMenuMain; MainMenuOptions* m_MainMenuOptions; + + EventRelay m_EKeyUp; + bool OnKeyUp(const Events::KeyUp& event) + { + if (event.KeyCode == GLFW_KEY_ESCAPE) { + Show(); + } + + return true; + } }; } diff --git a/include/Game/MainMenuMain.h b/include/Game/MainMenuMain.h index 7181c6e..fb0f2fe 100644 --- a/include/Game/MainMenuMain.h +++ b/include/Game/MainMenuMain.h @@ -41,6 +41,8 @@ public: m_OptionsButton->SetTextureHover("Textures/GUI/Menu/MainOptionsHover.png"); m_OptionsButton->SetTexturePressed("Textures/GUI/Menu/MainOptionsClick.png"); m_OptionsButton->SizeToTexture(); + + EVENT_SUBSCRIBE_MEMBER(m_EButtonRelease, &MainMenuMain::OnButtonRelease); } private: @@ -48,6 +50,16 @@ private: Button* m_SquidoutButton; Button* m_TimeAttackButton; Button* m_OptionsButton; + + EventRelay m_EButtonRelease; + virtual bool OnButtonRelease(const Events::ButtonRelease& event) + { + if (event.Button == m_SquidoutButton) { + m_Parent->Hide(); + } + + return true; + } }; }