From f6d1aa2fe104323b17ef3ed56e33651c67b3febe Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Wed, 8 Jan 2025 12:59:26 +0100 Subject: added replay functionality --- game/menus/ButtonSubScene.h | 1 + 1 file changed, 1 insertion(+) (limited to 'game/menus/ButtonSubScene.h') diff --git a/game/menus/ButtonSubScene.h b/game/menus/ButtonSubScene.h index c1c6de8..ba6d1f7 100644 --- a/game/menus/ButtonSubScene.h +++ b/game/menus/ButtonSubScene.h @@ -16,6 +16,7 @@ public: SHOP, MAINMENU, NEXT, + REPLAY, NONE, }; //icon enum -- cgit v1.2.3 From 3b6081d03300d353434fd4f6e91237fc8f1a4390 Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Wed, 8 Jan 2025 14:40:37 +0100 Subject: added credit window --- game/CMakeLists.txt | 3 +++ game/menus/ButtonShowCreditsSubScript.cpp | 20 ++++++++++++++++++++ game/menus/ButtonShowCreditsSubScript.h | 14 ++++++++++++++ game/menus/ButtonSubScene.cpp | 10 ++++++++++ game/menus/ButtonSubScene.h | 2 ++ game/menus/mainmenu/CreditsSubScene.cpp | 13 ++++++------- game/menus/mainmenu/CreditsSubScript.cpp | 14 ++++++++++++++ game/menus/mainmenu/CreditsSubScript.h | 6 +++++- game/menus/mainmenu/MainMenuScene.cpp | 6 +++++- 9 files changed, 79 insertions(+), 9 deletions(-) create mode 100644 game/menus/ButtonShowCreditsSubScript.cpp create mode 100644 game/menus/ButtonShowCreditsSubScript.h (limited to 'game/menus/ButtonSubScene.h') diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt index 1f9b8cf..f81850d 100644 --- a/game/CMakeLists.txt +++ b/game/CMakeLists.txt @@ -37,11 +37,14 @@ add_executable(main menus/ButtonNextMainMenuSubScript.cpp menus/FloatingWindowSubScene.cpp menus/IFloatingWindowScript.cpp + menus/ButtonShowCreditsSubScript.cpp menus/shop/ShopMenuScene.cpp menus/mainmenu/ButtonTransitionPreviewSubScript.cpp menus/mainmenu/ITransitionScript.cpp menus/mainmenu/MainMenuScene.cpp menus/mainmenu/TransitionStartSubScript.cpp + menus/mainmenu/CreditsSubScene.cpp + menus/mainmenu/CreditsSubScript.cpp menus/endgame/EndGameSubScene.cpp menus/endgame/EndGameSubScript.cpp coins/CoinSubScene.cpp diff --git a/game/menus/ButtonShowCreditsSubScript.cpp b/game/menus/ButtonShowCreditsSubScript.cpp new file mode 100644 index 0000000..ec0e980 --- /dev/null +++ b/game/menus/ButtonShowCreditsSubScript.cpp @@ -0,0 +1,20 @@ +#include "ButtonShowCreditsSubScript.h" +#include "MenusConfig.h" +#include "mainmenu/CreditsSubScript.h" +#include +#include + +using namespace crepe; +using namespace std; + +void ButtonShowCreditsSubScript::init() { + IButtonScript::init(); + this->subscribe([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); +} + +bool ButtonShowCreditsSubScript::on_button_press(const ButtonPressEvent & e) { + this->trigger_event(); + return false; +} diff --git a/game/menus/ButtonShowCreditsSubScript.h b/game/menus/ButtonShowCreditsSubScript.h new file mode 100644 index 0000000..3c73c44 --- /dev/null +++ b/game/menus/ButtonShowCreditsSubScript.h @@ -0,0 +1,14 @@ +#pragma once + +#include "IButtonScript.h" + +#include + +class ButtonShowCreditsSubScript : public IButtonScript { +public: + void init() override; + bool on_button_press(const crepe::ButtonPressEvent & e); + +protected: + bool transition = false; +}; diff --git a/game/menus/ButtonSubScene.cpp b/game/menus/ButtonSubScene.cpp index 2fb4c38..d657be9 100644 --- a/game/menus/ButtonSubScene.cpp +++ b/game/menus/ButtonSubScene.cpp @@ -3,12 +3,14 @@ #include "ButtonReplaySubScript.h" #include "ButtonSetMainMenuSubScript.h" #include "ButtonSetShopSubScript.h" +#include "ButtonShowCreditsSubScript.h" #include "IButtonScript.h" #include "MenusConfig.h" #include "mainmenu/ButtonTransitionPreviewSubScript.h" #include "../Config.h" +#include "mainmenu/CreditsSubScript.h" #include #include @@ -63,6 +65,14 @@ void ButtonSubScene::set_script(crepe::GameObject & button_object, const Data & button_object.add_component() .set_script(); break; + case ScriptSelect::CREDITS_BACK: + button_object.add_component() + .set_script(data.tag); + break; + case ScriptSelect::CREDITS_SHOW: + button_object.add_component() + .set_script(); + break; case ScriptSelect::NONE: button_object.add_component().set_script(); break; diff --git a/game/menus/ButtonSubScene.h b/game/menus/ButtonSubScene.h index ba6d1f7..74f9464 100644 --- a/game/menus/ButtonSubScene.h +++ b/game/menus/ButtonSubScene.h @@ -17,6 +17,8 @@ public: MAINMENU, NEXT, REPLAY, + CREDITS_SHOW, + CREDITS_BACK, NONE, }; //icon enum diff --git a/game/menus/mainmenu/CreditsSubScene.cpp b/game/menus/mainmenu/CreditsSubScene.cpp index 9a49257..df4616e 100644 --- a/game/menus/mainmenu/CreditsSubScene.cpp +++ b/game/menus/mainmenu/CreditsSubScene.cpp @@ -1,7 +1,6 @@ #include "CreditsSubScene.h" #include "CreditsSubScript.h" -#include "EndGameSubScript.h" #include "../../Config.h" #include "../ButtonSubScene.h" @@ -19,7 +18,7 @@ using namespace std; void CreditsSubScene::create(Scene & scn) { - const std::string TAG = "end_game_tag"; + const std::string TAG = "credits_tag"; GameObject script = scn.new_object("script"); script.add_component().set_script(TAG); @@ -30,7 +29,7 @@ void CreditsSubScene::create(Scene & scn) { FloatingWindowSubScene::Data { .group_tag = TAG, .width = 500, - .offset = {0, -50}, + .offset = {150, -50}, .width_middle_offset = -2, } ); @@ -45,7 +44,7 @@ void CreditsSubScene::create(Scene & scn) { .world_space = false, .text_color = Color::WHITE, }, - vec2 {0, -207} + FONTOFFSET, TITEL_STRING + vec2 {150, -207} + FONTOFFSET, TITEL_STRING ); // Buttons @@ -56,9 +55,9 @@ void CreditsSubScene::create(Scene & scn) { ButtonSubScene::Data { .text = "Back", .text_width = 150, - .position = {-button_position.x, button_position.y}, - //.script_type = ButtonSubScene::ScriptSelect::REPLAY, - //.button_type = ButtonSubScene::ButtonSelect::BACK, + .position = {-button_position.x+150, button_position.y}, + .script_type = ButtonSubScene::ScriptSelect::CREDITS_BACK, + .button_type = ButtonSubScene::ButtonSelect::BACK, .scale = 0.6, .worldspace = false, .tag = TAG, diff --git a/game/menus/mainmenu/CreditsSubScript.cpp b/game/menus/mainmenu/CreditsSubScript.cpp index 5326594..ce74ba4 100644 --- a/game/menus/mainmenu/CreditsSubScript.cpp +++ b/game/menus/mainmenu/CreditsSubScript.cpp @@ -13,9 +13,18 @@ using namespace crepe; + CreditsSubScript::CreditsSubScript(const std::string & tag) { this->tag = tag; } void CreditsSubScript::init() { + IButtonScript::init(); + this->subscribe([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); + this->subscribe([this](const ShowCreditsEvent & e) { + this->enable_all(); + return false; + }); this->disable_all(); } @@ -44,3 +53,8 @@ bool CreditsSubScript::enable_all() { } return false; } + +bool CreditsSubScript::on_button_press(const ButtonPressEvent & e) { + return this->disable_all(); +} + diff --git a/game/menus/mainmenu/CreditsSubScript.h b/game/menus/mainmenu/CreditsSubScript.h index 08e1f91..e411202 100644 --- a/game/menus/mainmenu/CreditsSubScript.h +++ b/game/menus/mainmenu/CreditsSubScript.h @@ -1,14 +1,18 @@ #pragma once #include "../IFloatingWindowScript.h" +#include "../IButtonScript.h" #include #include -class CreditsSubScript : public IFloatingWindowScript { +struct ShowCreditsEvent : public crepe::Event {}; + +class CreditsSubScript : public IFloatingWindowScript, public IButtonScript { public: CreditsSubScript(const std::string & tag); void init() override; bool disable_all(); bool enable_all(); + bool on_button_press(const crepe::ButtonPressEvent & e); }; diff --git a/game/menus/mainmenu/MainMenuScene.cpp b/game/menus/mainmenu/MainMenuScene.cpp index 743fe43..fba90ac 100644 --- a/game/menus/mainmenu/MainMenuScene.cpp +++ b/game/menus/mainmenu/MainMenuScene.cpp @@ -1,5 +1,6 @@ #include "MainMenuScene.h" +#include "CreditsSubScene.h" #include "MainMenuConfig.h" #include "TransitionStartSubScript.h" @@ -81,7 +82,7 @@ void MainMenuScene::load_scene() { .text_offset = {0, 0}, .text_width = 200, .position = pos_btn, - //.script_type = ButtonSubScene::ScriptSelect::SHOP, + .script_type = ButtonSubScene::ScriptSelect::CREDITS_SHOW, } ); @@ -123,6 +124,9 @@ void MainMenuScene::load_scene() { .tag = MENU_INFO_TAG, } ); + + CreditsSubScene creditscene; + creditscene.create(*this); } string MainMenuScene::get_name() const { return MAINMENU_SCENE; } -- cgit v1.2.3