diff options
Diffstat (limited to 'game/menus/mainmenu')
-rw-r--r-- | game/menus/mainmenu/ButtonTransitionPreviewSubScript.cpp | 16 | ||||
-rw-r--r-- | game/menus/mainmenu/ButtonTransitionPreviewSubScript.h | 4 | ||||
-rw-r--r-- | game/menus/mainmenu/ITransitionScript.cpp | 21 | ||||
-rw-r--r-- | game/menus/mainmenu/ITransitionScript.h | 4 | ||||
-rw-r--r-- | game/menus/mainmenu/MainMenuConfig.h | 17 | ||||
-rw-r--r-- | game/menus/mainmenu/MainMenuScene.cpp | 123 | ||||
-rw-r--r-- | game/menus/mainmenu/TransitionStartSubScript.cpp | 11 | ||||
-rw-r--r-- | game/menus/mainmenu/TransitionStartSubScript.h | 2 |
8 files changed, 104 insertions, 94 deletions
diff --git a/game/menus/mainmenu/ButtonTransitionPreviewSubScript.cpp b/game/menus/mainmenu/ButtonTransitionPreviewSubScript.cpp index 8c055ec..4c4dfc1 100644 --- a/game/menus/mainmenu/ButtonTransitionPreviewSubScript.cpp +++ b/game/menus/mainmenu/ButtonTransitionPreviewSubScript.cpp @@ -5,17 +5,19 @@ using namespace crepe; using namespace std; -void ButtonTransitionPreviewSubScript::init(){ +void ButtonTransitionPreviewSubScript::init() { IButtonScript::init(); - this->subscribe<ButtonPressEvent>([this](const ButtonPressEvent& e) { return this->on_button_press(e); }); + this->subscribe<ButtonPressEvent>([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); } -bool ButtonTransitionPreviewSubScript::on_button_press(const ButtonPressEvent& e){ - if(!this->transition) this->transition = true; +bool ButtonTransitionPreviewSubScript::on_button_press(const ButtonPressEvent & e) { + if (!this->transition) this->transition = true; return false; } -const char* ButtonTransitionPreviewSubScript::get_scene_name() const { - // Provide the next scene defined in MainMenuConfig - return PREVIEW_SCENE; +const char * ButtonTransitionPreviewSubScript::get_scene_name() const { + // Provide the next scene defined in MainMenuConfig + return PREVIEW_SCENE; } diff --git a/game/menus/mainmenu/ButtonTransitionPreviewSubScript.h b/game/menus/mainmenu/ButtonTransitionPreviewSubScript.h index 6e6b0b2..d6d8149 100644 --- a/game/menus/mainmenu/ButtonTransitionPreviewSubScript.h +++ b/game/menus/mainmenu/ButtonTransitionPreviewSubScript.h @@ -7,6 +7,6 @@ class ButtonTransitionPreviewSubScript : public ITransitionScript, public IButtonScript { public: void init() override; - bool on_button_press(const crepe::ButtonPressEvent& e); - const char* get_scene_name() const override; + bool on_button_press(const crepe::ButtonPressEvent & e); + const char * get_scene_name() const override; }; diff --git a/game/menus/mainmenu/ITransitionScript.cpp b/game/menus/mainmenu/ITransitionScript.cpp index 9e547e6..cd929a0 100644 --- a/game/menus/mainmenu/ITransitionScript.cpp +++ b/game/menus/mainmenu/ITransitionScript.cpp @@ -3,30 +3,27 @@ #include "../MenusConfig.h" -#include <crepe/types.h> -#include <crepe/api/Transform.h> #include <crepe/api/Camera.h> +#include <crepe/api/Transform.h> +#include <crepe/types.h> using namespace crepe; using namespace std; -void ITransitionScript::frame_update(crepe::duration_t delta_time){ - if(this->transition) - { +void ITransitionScript::frame_update(crepe::duration_t delta_time) { + if (this->transition) { // cout << "transition:" << velocity << std::endl; Transform & cam = this->get_components_by_name<Transform>(CAMERA_NAME).front(); RefVector<Transform> info_tf = this->get_components_by_tag<Transform>(MENU_INFO_TAG); for (Transform & tf : info_tf) { tf.position.y -= VELOCITY_INFO_UP * delta_time.count(); } - if(velocity < VELOCITY_MAX && cam.position.x < SLOW_DOWN) velocity += VELOCITY_STEP * delta_time.count(); - else if(velocity > 20) velocity -= VELOCITY_STEP * delta_time.count(); - if(cam.position.x < END) cam.position.x += (velocity * delta_time.count()); - if(cam.position.x >= END) - { + if (velocity < VELOCITY_MAX && cam.position.x < SLOW_DOWN) + velocity += VELOCITY_STEP * delta_time.count(); + else if (velocity > 20) velocity -= VELOCITY_STEP * delta_time.count(); + if (cam.position.x < END) cam.position.x += (velocity * delta_time.count()); + if (cam.position.x >= END) { this->set_next_scene(this->get_scene_name()); } - } } - diff --git a/game/menus/mainmenu/ITransitionScript.h b/game/menus/mainmenu/ITransitionScript.h index 78f1016..9a2ef90 100644 --- a/game/menus/mainmenu/ITransitionScript.h +++ b/game/menus/mainmenu/ITransitionScript.h @@ -5,9 +5,11 @@ class ITransitionScript : public virtual crepe::Script { public: void frame_update(crepe::duration_t delta_time) override; - virtual const char* get_scene_name() const = 0; + virtual const char * get_scene_name() const = 0; + private: float velocity = 20; + protected: bool transition = false; }; diff --git a/game/menus/mainmenu/MainMenuConfig.h b/game/menus/mainmenu/MainMenuConfig.h index 01995f0..f4ca5a6 100644 --- a/game/menus/mainmenu/MainMenuConfig.h +++ b/game/menus/mainmenu/MainMenuConfig.h @@ -3,20 +3,17 @@ //main menu config static constexpr float STARTMAP_OFFSET = 50; -static constexpr crepe::vec2 MENU_OFFSET = {0,0}; +static constexpr crepe::vec2 MENU_OFFSET = {0, 0}; static constexpr float MENU_BUTTON_SPACING = 10; -static constexpr const char* MENU_BUTTON_NAME = "menu_button_background"; -static constexpr crepe::vec2 MENU_OFFSET_BUTTON = {-400,-200}; -static constexpr crepe::vec2 MENU_OFFSET_BUTTON_BACKGROUND = {-400,0}; -static constexpr const char* MENU_INFO_TAG = "menu_info"; -static constexpr crepe::vec2 MENU_OFFSET_INFO = {350,-365}; -static constexpr crepe::vec2 MENU_OFFSET_INFO_BACKGROUND = {350,-365}; //375 +static constexpr const char * MENU_BUTTON_NAME = "menu_button_background"; +static constexpr crepe::vec2 MENU_OFFSET_BUTTON = {-400, -200}; +static constexpr crepe::vec2 MENU_OFFSET_BUTTON_BACKGROUND = {-400, 0}; +static constexpr const char * MENU_INFO_TAG = "menu_info"; +static constexpr crepe::vec2 MENU_OFFSET_INFO = {350, -365}; +static constexpr crepe::vec2 MENU_OFFSET_INFO_BACKGROUND = {350, -365}; //375 //Moving to new scene (Start and Preview) static constexpr float SLOW_DOWN = 200; static constexpr float END = 300; static constexpr float VELOCITY_MAX = 200; static constexpr float VELOCITY_STEP = 200; static constexpr float VELOCITY_INFO_UP = 40; - - - diff --git a/game/menus/mainmenu/MainMenuScene.cpp b/game/menus/mainmenu/MainMenuScene.cpp index e0dfbee..43418e3 100644 --- a/game/menus/mainmenu/MainMenuScene.cpp +++ b/game/menus/mainmenu/MainMenuScene.cpp @@ -1,104 +1,115 @@ #include "MainMenuScene.h" -#include "TransitionStartSubScript.h" #include "MainMenuConfig.h" +#include "TransitionStartSubScript.h" #include "../ButtonSubScene.h" #include "../MenusConfig.h" -#include "../../background/StartSubScene.h" -#include "../../background/HallwaySubScene.h" #include "../../Config.h" +#include "../../background/HallwaySubScene.h" +#include "../../background/StartSubScene.h" #include "../endgame/EndGameSubScene.h" #include <crepe/api/BehaviorScript.h> +#include <crepe/api/Camera.h> #include <crepe/api/GameObject.h> #include <crepe/api/Sprite.h> -#include <crepe/api/Camera.h> #include <crepe/manager/SaveManager.h> using namespace crepe; using namespace std; -void MainMenuScene::load_scene(){ +void MainMenuScene::load_scene() { ButtonSubScene button; GameObject camera_object = this->new_object(CAMERA_NAME); - camera_object.add_component<Camera>(ivec2(990, 720), vec2(1100, 800), - Camera::Data{ - .bg_color = Color::RED, - }); + camera_object.add_component<Camera>( + ivec2(990, 720), vec2(1100, 800), + Camera::Data { + .bg_color = Color::RED, + } + ); camera_object.add_component<BehaviorScript>().set_script<TransitionStartSubScript>(); - //Button menu - GameObject menu_button = this->new_object(MENU_BUTTON_NAME,MENU_BUTTON_NAME,MENU_OFFSET); + GameObject menu_button = this->new_object(MENU_BUTTON_NAME, MENU_BUTTON_NAME, MENU_OFFSET); menu_button.add_component<Sprite>( Asset("asset/ui/background.png"), - Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+0, - .size = {300,860}, - .position_offset = MENU_OFFSET_BUTTON_BACKGROUND, - }); + Sprite::Data { + .sorting_in_layer = STARTING_SORTING_IN_LAYER + 0, + .size = {300, 860}, + .position_offset = MENU_OFFSET_BUTTON_BACKGROUND, + } + ); vec2 pos_btn = MENU_OFFSET_BUTTON; - + //Preview btn - button.create(*this,ButtonSubScene::Data{ - .text = "PREVIEW", - .text_width = 200, - .position = pos_btn, - .script_type = ButtonSubScene::ScriptSelect::PREVIEW, - }); + button.create( + *this, + ButtonSubScene::Data { + .text = "PREVIEW", + .text_width = 200, + .position = pos_btn, + .script_type = ButtonSubScene::ScriptSelect::PREVIEW, + } + ); //Shop btn pos_btn.y += MENU_BUTTON_SPACING + LARGE_OVERLAY_SIZE.y; - button.create(*this,ButtonSubScene::Data{ - .text = "SHOP", - .text_offset = {-20,0}, - .text_width = 115, - .icon_offset = {60,0}, - .icon_type = ButtonSubScene::IconSelect::SHOP, - .position = pos_btn, - .script_type = ButtonSubScene::ScriptSelect::SHOP, - }); - + button.create( + *this, + ButtonSubScene::Data { + .text = "SHOP", + .text_offset = {-20, 0}, + .text_width = 115, + .icon_offset = {60, 0}, + .icon_type = ButtonSubScene::IconSelect::SHOP, + .position = pos_btn, + .script_type = ButtonSubScene::ScriptSelect::SHOP, + } + ); + //Start of map StartSubScene start; HallwaySubScene hallway; float begin_x = start.create(*this, STARTMAP_OFFSET); begin_x = hallway.create(*this, begin_x, 1, Color::YELLOW); - //INFO menu - GameObject menu_info = this->new_object("MENU_INFO_BACKGROUND",MENU_INFO_TAG,MENU_OFFSET); + GameObject menu_info + = this->new_object("MENU_INFO_BACKGROUND", MENU_INFO_TAG, MENU_OFFSET); menu_info.add_component<Sprite>( Asset("asset/ui/itemsButtonBlankDark.png"), - Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+0, - .size = {250,80}, - .position_offset = MENU_OFFSET_INFO, - .world_space = false, - }); + Sprite::Data { + .sorting_in_layer = STARTING_SORTING_IN_LAYER + 0, + .size = {250, 80}, + .position_offset = MENU_OFFSET_INFO, + .world_space = false, + } + ); SaveManager & savemgr = this->get_save_manager(); - string number = std::to_string(savemgr.get<int>(TOTAL_COINS_GAME,0).get()); + string number = std::to_string(savemgr.get<int>(TOTAL_COINS_GAME, 0).get()); float amount_number = static_cast<float>(number.size()); // savemgr.set(COIN_GAME_AMOUNT, amount); - button.create(*this,ButtonSubScene::Data{ - .text = number, - .text_offset = {-10-(amount_number-1)*10,0}, - .text_width = amount_number*20, - .icon_offset = {60,0}, - .icon_type = ButtonSubScene::IconSelect::COINS, - .position = MENU_OFFSET_INFO, - .script_type = ButtonSubScene::ScriptSelect::SHOP, - .scale = 0.6, - .worldspace = false, - .color_side = false, - .tag = MENU_INFO_TAG, - }); - + button.create( + *this, + ButtonSubScene::Data { + .text = number, + .text_offset = {-10 - (amount_number - 1) * 10, 0}, + .text_width = amount_number * 20, + .icon_offset = {60, 0}, + .icon_type = ButtonSubScene::IconSelect::COINS, + .position = MENU_OFFSET_INFO, + .script_type = ButtonSubScene::ScriptSelect::SHOP, + .scale = 0.6, + .worldspace = false, + .color_side = false, + .tag = MENU_INFO_TAG, + } + ); } string MainMenuScene::get_name() const { return MAINMENU_SCENE; } diff --git a/game/menus/mainmenu/TransitionStartSubScript.cpp b/game/menus/mainmenu/TransitionStartSubScript.cpp index 6ad4673..63723cf 100644 --- a/game/menus/mainmenu/TransitionStartSubScript.cpp +++ b/game/menus/mainmenu/TransitionStartSubScript.cpp @@ -5,11 +5,12 @@ using namespace crepe; using namespace std; -void TransitionStartSubScript::fixed_update(crepe::duration_t dt){ - if(this->get_key_state(Keycode::ENTER) && this->transition == false) this->transition = true; +void TransitionStartSubScript::fixed_update(crepe::duration_t dt) { + if (this->get_key_state(Keycode::ENTER) && this->transition == false) + this->transition = true; } -const char* TransitionStartSubScript::get_scene_name() const { - // Provide the next scene defined in MainMenuConfig - return START_SCENE; +const char * TransitionStartSubScript::get_scene_name() const { + // Provide the next scene defined in MainMenuConfig + return START_SCENE; } diff --git a/game/menus/mainmenu/TransitionStartSubScript.h b/game/menus/mainmenu/TransitionStartSubScript.h index b41360d..f9862ea 100644 --- a/game/menus/mainmenu/TransitionStartSubScript.h +++ b/game/menus/mainmenu/TransitionStartSubScript.h @@ -5,5 +5,5 @@ class TransitionStartSubScript : public ITransitionScript { public: void fixed_update(crepe::duration_t dt) override; - const char* get_scene_name() const override; + const char * get_scene_name() const override; }; |