From 867414de0e2e963b0d1c35b3a46884a8a03a9294 Mon Sep 17 00:00:00 2001 From: JAROWMR Date: Mon, 6 Jan 2025 19:09:52 +0100 Subject: popup window --- game/CMakeLists.txt | 1 + game/menus/ButtonSubScene.cpp | 5 +- game/menus/ButtonSubScene.h | 3 +- game/menus/endgame/EndGameSubScene.cpp | 163 +++++++++++++++++++++++++++++++++ game/menus/endgame/EndGameSubScene.h | 12 +++ game/menus/mainmenu/MainMenuScene.cpp | 7 +- game/menus/shop/ShopMenuScene.cpp | 4 +- 7 files changed, 190 insertions(+), 5 deletions(-) create mode 100644 game/menus/endgame/EndGameSubScene.cpp create mode 100644 game/menus/endgame/EndGameSubScene.h diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt index 949312f..4c5bd53 100644 --- a/game/CMakeLists.txt +++ b/game/CMakeLists.txt @@ -32,6 +32,7 @@ add_executable(main menus/mainmenu/ITransitionScript.cpp menus/mainmenu/MainMenuScene.cpp menus/mainmenu/TransitionStartScript.cpp + menus/endgame/EndGameSubScene.cpp coins/CoinSubScene.cpp coins/CoinPool.cpp coins/CoinSystemScript.cpp diff --git a/game/menus/ButtonSubScene.cpp b/game/menus/ButtonSubScene.cpp index 6aad352..d735d08 100644 --- a/game/menus/ButtonSubScene.cpp +++ b/game/menus/ButtonSubScene.cpp @@ -80,7 +80,10 @@ void ButtonSubScene::set_button_overlay(crepe::GameObject & button_object,const case ButtonSelect::LARGE: this->large_btn_overlay(button_object,data); break; - case ButtonSelect::SMALL: + case ButtonSelect::BACK: + this->small_btn_overlay(button_object,data); + break; + case ButtonSelect::NEXT: this->small_btn_overlay(button_object,data); break; } diff --git a/game/menus/ButtonSubScene.h b/game/menus/ButtonSubScene.h index 5609ecb..6781d19 100644 --- a/game/menus/ButtonSubScene.h +++ b/game/menus/ButtonSubScene.h @@ -25,7 +25,8 @@ public: }; //icon enum enum class ButtonSelect { - SMALL, + BACK, + NEXT, LARGE, }; //data struct diff --git a/game/menus/endgame/EndGameSubScene.cpp b/game/menus/endgame/EndGameSubScene.cpp new file mode 100644 index 0000000..029bf1c --- /dev/null +++ b/game/menus/endgame/EndGameSubScene.cpp @@ -0,0 +1,163 @@ + +#include "EndGameSubScene.h" + +#include "../MenusConfig.h" +#include "../../Config.h" +#include "api/GameObject.h" +#include "api/Scene.h" +#include "api/Sprite.h" + +#include + +using namespace crepe; +using namespace std; + +void EndGameSubScene::create(Scene & scn){ + const vec2 SIZE = {200,100}; + const float THICKNESS_BANNER = 34; + const float MIDDLE_OFFSET_FACTOR_TICKNESS = 0.83; + const float MIDDLE_OFFSET_FACTOR_OFFSET = 1.2; + const float MIDDLE_OFFSET_TICKNESS_ADDITION = -8; + const float MIDDLE_OFFSET_OFFSET_ADDITION = -0.5; + const float BOTTOM_OFFSET_X = 3; + const float BOTTOM_OFFSET_Y = -5; + + GameObject endgame = scn.new_object("EndGameSubScene"); + + // Top_middle + endgame.add_component( + Asset("asset/ui/settings_container/top_middle_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {SIZE.x,THICKNESS_BANNER}, + .position_offset = {0,0}, + }); + + // Top_Left + endgame.add_component( + Asset("asset/ui/settings_container/top_left_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER,THICKNESS_BANNER}, + .position_offset = {-SIZE.x/2-THICKNESS_BANNER/2,0}, + }); + + // Top_Right + endgame.add_component( + Asset("asset/ui/settings_container/top_right_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER,THICKNESS_BANNER}, + .position_offset = {SIZE.x/2+THICKNESS_BANNER/2,0}, + }); + + // Top_middle_2 + endgame.add_component( + Asset("asset/ui/settings_container/top_2_middle_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {SIZE.x,THICKNESS_BANNER}, + .position_offset = {0,THICKNESS_BANNER}, + }); + + // Top_Left_2 + endgame.add_component( + Asset("asset/ui/settings_container/top_2_left_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER,THICKNESS_BANNER}, + .position_offset = {-SIZE.x/2-THICKNESS_BANNER/2,THICKNESS_BANNER}, + }); + + // Top_Right_2 + endgame.add_component( + Asset("asset/ui/settings_container/top_2_right_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER,THICKNESS_BANNER}, + .position_offset = {SIZE.x/2+THICKNESS_BANNER/2,THICKNESS_BANNER}, + }); + + // Top_middle_3 + endgame.add_component( + Asset("asset/ui/settings_container/top_3_middle_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {SIZE.x,THICKNESS_BANNER}, + .position_offset = {0,THICKNESS_BANNER*2}, + }); + + // Top_Left_3 + endgame.add_component( + Asset("asset/ui/settings_container/top_3_left_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER,THICKNESS_BANNER}, + .position_offset = {-SIZE.x/2-THICKNESS_BANNER/2,THICKNESS_BANNER*2}, + }); + + // Top_Right_3 + endgame.add_component( + Asset("asset/ui/settings_container/top_3_right_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER,THICKNESS_BANNER}, + .position_offset = {SIZE.x/2+THICKNESS_BANNER/2,THICKNESS_BANNER*2}, + }); + + // Middle_Mid + endgame.add_component( + Asset("asset/ui/settings_container/middle_mid_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+7, + .size = {SIZE.x*MIDDLE_OFFSET_FACTOR_OFFSET+MIDDLE_OFFSET_TICKNESS_ADDITION,SIZE.y}, + .position_offset = {0,THICKNESS_BANNER*3+SIZE.y/2-THICKNESS_BANNER/2}, + }); + + // Middle_Left + endgame.add_component( + Asset("asset/ui/settings_container/middle_left_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS,SIZE.y}, + .position_offset = {-SIZE.x/2-THICKNESS_BANNER/2*MIDDLE_OFFSET_FACTOR_OFFSET-MIDDLE_OFFSET_OFFSET_ADDITION,THICKNESS_BANNER*3+SIZE.y/2-THICKNESS_BANNER/2}, + }); + + // Middle_Right + endgame.add_component( + Asset("asset/ui/settings_container/middle_right_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS,SIZE.y}, + .position_offset = {SIZE.x/2+THICKNESS_BANNER/2*MIDDLE_OFFSET_FACTOR_OFFSET+MIDDLE_OFFSET_OFFSET_ADDITION,THICKNESS_BANNER*3+SIZE.y/2-THICKNESS_BANNER/2}, + }); + + // Bot_Middle + endgame.add_component( + Asset("asset/ui/settings_container/bot_middle_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+7, + .size = {SIZE.x*MIDDLE_OFFSET_FACTOR_OFFSET+MIDDLE_OFFSET_TICKNESS_ADDITION,THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS}, + .position_offset = {0,THICKNESS_BANNER*3+SIZE.y-5}, + }); + + // Bot_Left + endgame.add_component( + Asset("asset/ui/settings_container/bot_left_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS,THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS}, + .position_offset = {-SIZE.x/2-THICKNESS_BANNER/2-BOTTOM_OFFSET_X,THICKNESS_BANNER*3+SIZE.y+BOTTOM_OFFSET_Y}, + }); + + // Bot_Right + endgame.add_component( + Asset("asset/ui/settings_container/bot_right_setting.png"), + Sprite::Data{ + .sorting_in_layer = STARTING_SORTING_IN_LAYER+8, + .size = {THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS,THICKNESS_BANNER*MIDDLE_OFFSET_FACTOR_TICKNESS}, + .position_offset = {SIZE.x/2+THICKNESS_BANNER/2+BOTTOM_OFFSET_X,THICKNESS_BANNER*3+SIZE.y+BOTTOM_OFFSET_Y}, + }); +} + + diff --git a/game/menus/endgame/EndGameSubScene.h b/game/menus/endgame/EndGameSubScene.h new file mode 100644 index 0000000..5c727a7 --- /dev/null +++ b/game/menus/endgame/EndGameSubScene.h @@ -0,0 +1,12 @@ +#pragma once + +#include "Component.h" +#include + +#include +#include + +class EndGameSubScene { +public: + void create(crepe::Scene & scn); +}; diff --git a/game/menus/mainmenu/MainMenuScene.cpp b/game/menus/mainmenu/MainMenuScene.cpp index fcbd43f..a515b45 100644 --- a/game/menus/mainmenu/MainMenuScene.cpp +++ b/game/menus/mainmenu/MainMenuScene.cpp @@ -10,6 +10,8 @@ #include "../../background/HallwaySubScene.h" #include "../../Config.h" +#include "../endgame/EndGameSubScene.h" + #include #include #include @@ -97,6 +99,9 @@ void MainMenuScene::load_scene(){ .tag = MENU_INFO_TAG, }); + EndGameSubScene test; + test.create(*this); + } -string MainMenuScene::get_name() const { return "mainmenu"; } +string MainMenuScene::get_name() const { return MAINMENU_SCENE; } diff --git a/game/menus/shop/ShopMenuScene.cpp b/game/menus/shop/ShopMenuScene.cpp index d35d296..6c88dc8 100644 --- a/game/menus/shop/ShopMenuScene.cpp +++ b/game/menus/shop/ShopMenuScene.cpp @@ -38,9 +38,9 @@ void ShopMenuScene::load_scene(){ .text_width = 115, .position = {-400,-350}, .script_type = ButtonSubScene::ScriptSelect::MAINMENU, - .button_type = ButtonSubScene::ButtonSelect::SMALL, + .button_type = ButtonSubScene::ButtonSelect::BACK, .scale = 0.8 }); } -string ShopMenuScene::get_name() const { return "shopmenu"; } +string ShopMenuScene::get_name() const { return SHOP_SCENE; } -- cgit v1.2.3