diff options
-rw-r--r-- | game/CMakeLists.txt | 1 | ||||
-rw-r--r-- | game/menus/ButtonSubScene.cpp | 5 | ||||
-rw-r--r-- | game/menus/ButtonSubScene.h | 3 | ||||
-rw-r--r-- | game/menus/endgame/EndGameSubScene.cpp | 163 | ||||
-rw-r--r-- | game/menus/endgame/EndGameSubScene.h | 12 | ||||
-rw-r--r-- | game/menus/mainmenu/MainMenuScene.cpp | 7 | ||||
-rw-r--r-- | game/menus/shop/ShopMenuScene.cpp | 4 |
7 files changed, 190 insertions, 5 deletions
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 <crepe/api/Camera.h> + +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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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<Sprite>( + 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 <string> + +#include <crepe/api/Scene.h> +#include <vector> + +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 <crepe/api/BehaviorScript.h> #include <crepe/api/GameObject.h> #include <crepe/api/Sprite.h> @@ -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; } |