From 93aa94921e027e05d7cb9908305af225c64b1ff2 Mon Sep 17 00:00:00 2001 From: Max-001 Date: Wed, 8 Jan 2025 09:03:30 +0100 Subject: Make format --- game/Config.h | 18 +- game/GameScene.cpp | 4 +- game/coins/CoinPoolSubScene.cpp | 4 +- game/coins/CoinPoolSubScene.h | 2 +- game/coins/CoinScript.cpp | 26 ++- game/coins/CoinScript.h | 1 + game/coins/CoinSubScene.cpp | 37 ++-- game/coins/CoinSubScene.h | 2 +- game/coins/CoinSystemScript.cpp | 127 +++++------ game/coins/CoinSystemScript.h | 92 ++++---- game/hud/HudConfig.h | 27 ++- game/hud/HudScript.cpp | 65 +++--- game/hud/HudScript.h | 3 +- game/hud/HudSubScene.cpp | 67 ++++-- game/hud/HudSubScene.h | 3 +- game/hud/SpeedScript.cpp | 24 +-- game/hud/SpeedScript.h | 3 +- game/main.cpp | 1 - game/menus/BannerSubScene.cpp | 53 +++-- game/menus/BannerSubScene.h | 9 +- game/menus/ButtonNextMainMenuSubScript.cpp | 28 +-- game/menus/ButtonNextMainMenuSubScript.h | 4 +- game/menus/ButtonSetMainMenuSubScript.cpp | 14 +- game/menus/ButtonSetMainMenuSubScript.h | 4 +- game/menus/ButtonSetShopSubScript.cpp | 9 +- game/menus/ButtonSetShopSubScript.h | 4 +- game/menus/ButtonSubScene.cpp | 227 ++++++++++++-------- game/menus/ButtonSubScene.h | 33 +-- game/menus/FloatingWindowSubScene.cpp | 238 ++++++++++++--------- game/menus/FloatingWindowSubScene.h | 11 +- game/menus/IButtonScript.cpp | 27 +-- game/menus/IButtonScript.h | 6 +- game/menus/IFloatingWindowScript.cpp | 12 +- game/menus/IFloatingWindowScript.h | 3 +- game/menus/MenusConfig.h | 20 +- game/menus/endgame/EndGameSubScene.cpp | 95 ++++---- game/menus/endgame/EndGameSubScene.h | 2 +- game/menus/endgame/EndGameSubScript.cpp | 26 +-- game/menus/endgame/EndGameSubScript.h | 4 +- .../mainmenu/ButtonTransitionPreviewSubScript.cpp | 16 +- .../mainmenu/ButtonTransitionPreviewSubScript.h | 4 +- game/menus/mainmenu/ITransitionScript.cpp | 21 +- game/menus/mainmenu/ITransitionScript.h | 4 +- game/menus/mainmenu/MainMenuConfig.h | 17 +- game/menus/mainmenu/MainMenuScene.cpp | 123 ++++++----- game/menus/mainmenu/TransitionStartSubScript.cpp | 11 +- game/menus/mainmenu/TransitionStartSubScript.h | 2 +- game/menus/shop/ShopMenuScene.cpp | 59 ++--- game/player/PlayerEndScript.cpp | 2 +- 49 files changed, 894 insertions(+), 700 deletions(-) diff --git a/game/Config.h b/game/Config.h index c09a965..665b94a 100644 --- a/game/Config.h +++ b/game/Config.h @@ -26,20 +26,20 @@ static constexpr int VIEWPORT_X = 1100; // In game units static constexpr int VIEWPORT_Y = 500; // In game units // Font settings -static constexpr const char* FONT = "Jetpackia"; -static constexpr crepe::vec2 FONTOFFSET = {0,0}; +static constexpr const char * FONT = "Jetpackia"; +static constexpr crepe::vec2 FONTOFFSET = {0, 0}; -// Amount of coins in game -static constexpr const char* TOTAL_COINS_GAME = "total_coins_game"; +// Amount of coins in game +static constexpr const char * TOTAL_COINS_GAME = "total_coins_game"; -// Amount of coins in current run -static constexpr const char* TOTAL_COINS_RUN = "total_coins_run"; +// Amount of coins in current run +static constexpr const char * TOTAL_COINS_RUN = "total_coins_run"; // Distance -static constexpr const char* DISTANCE_GAME = "distance_game"; -static constexpr const char* DISTANCE_RUN = "distance_run"; +static constexpr const char * DISTANCE_GAME = "distance_game"; +static constexpr const char * DISTANCE_RUN = "distance_run"; // Player config -static constexpr const char* PLAYER_NAME = "player"; +static constexpr const char * PLAYER_NAME = "player"; static constexpr int PLAYER_SPEED = 7500; // In game units static constexpr int PLAYER_GRAVITY_SCALE = 60; // In game units diff --git a/game/GameScene.cpp b/game/GameScene.cpp index 38ac4b1..6ff2ea4 100644 --- a/game/GameScene.cpp +++ b/game/GameScene.cpp @@ -46,8 +46,8 @@ void GameScene::load_scene() { camera.add_component().set_script(); camera.add_component().set_script(); camera.add_component().set_script(); - - camera.add_component(Rigidbody::Data{}); + + camera.add_component(Rigidbody::Data {}); PlayerSubScene player(*this); diff --git a/game/coins/CoinPoolSubScene.cpp b/game/coins/CoinPoolSubScene.cpp index 05f6bfc..f8b5b70 100644 --- a/game/coins/CoinPoolSubScene.cpp +++ b/game/coins/CoinPoolSubScene.cpp @@ -7,7 +7,7 @@ using namespace std; void CoinPoolSubScene::create_coins(crepe::Scene & scn) { int amount = 0; CoinSubScene coin; - while(amount < this->MAXIMUM_AMOUNT){ - amount = coin.create(scn,amount); + while (amount < this->MAXIMUM_AMOUNT) { + amount = coin.create(scn, amount); } } diff --git a/game/coins/CoinPoolSubScene.h b/game/coins/CoinPoolSubScene.h index 7360051..07626d6 100644 --- a/game/coins/CoinPoolSubScene.h +++ b/game/coins/CoinPoolSubScene.h @@ -5,7 +5,7 @@ class CoinPoolSubScene { public: void create_coins(crepe::Scene & scn); + private: static constexpr int MAXIMUM_AMOUNT = 100; }; - diff --git a/game/coins/CoinScript.cpp b/game/coins/CoinScript.cpp index 3d18780..3a2b5b0 100644 --- a/game/coins/CoinScript.cpp +++ b/game/coins/CoinScript.cpp @@ -11,25 +11,35 @@ using namespace crepe; using namespace std; -bool CoinScript::on_collision(const CollisionEvent & collisionData){ - if(collisionData.info.other.metadata.tag != "coin") return false; - this->get_components_by_name(collisionData.info.other.metadata.name).front().get().active = false; - this->get_components_by_name(collisionData.info.other.metadata.name).front().get().active = false; +bool CoinScript::on_collision(const CollisionEvent & collisionData) { + if (collisionData.info.other.metadata.tag != "coin") return false; + this->get_components_by_name(collisionData.info.other.metadata.name) + .front() + .get() + .active + = false; + this->get_components_by_name(collisionData.info.other.metadata.name) + .front() + .get() + .active + = false; this->amount++; return false; } -void CoinScript::init(){ - this->subscribe([this](const CollisionEvent & ev) -> bool { return this->on_collision(ev); }); +void CoinScript::init() { + this->subscribe([this](const CollisionEvent & ev) -> bool { + return this->on_collision(ev); + }); } void CoinScript::fixed_update(crepe::duration_t dt) { - this->trigger_event(GetCoinEvent{ + this->trigger_event(GetCoinEvent { .amount_of_coins = this->amount, }); } -bool CoinScript::save(){ +bool CoinScript::save() { SaveManager & savemgr = this->get_save_manager(); savemgr.set(TOTAL_COINS_RUN, this->amount); return false; diff --git a/game/coins/CoinScript.h b/game/coins/CoinScript.h index 6fcb64e..5718025 100644 --- a/game/coins/CoinScript.h +++ b/game/coins/CoinScript.h @@ -8,6 +8,7 @@ public: void fixed_update(crepe::duration_t dt) override; bool on_collision(const crepe::CollisionEvent & collisionData); bool save(); + private: int amount = 0; }; diff --git a/game/coins/CoinSubScene.cpp b/game/coins/CoinSubScene.cpp index 63f9e89..2c9feb6 100644 --- a/game/coins/CoinSubScene.cpp +++ b/game/coins/CoinSubScene.cpp @@ -3,37 +3,42 @@ #include "../Config.h" #include +#include #include #include #include -#include using namespace crepe; using namespace std; -int CoinSubScene::create(Scene & scn,int coin_counter){ +int CoinSubScene::create(Scene & scn, int coin_counter) { vec2 size = {20, 20}; string unique_name = "coin_" + to_string(coin_counter++); - GameObject coin = scn.new_object(unique_name.c_str(),"coin",vec2{650,0},0,1); - coin.add_component(Rigidbody::Data{ + GameObject coin = scn.new_object(unique_name.c_str(), "coin", vec2 {650, 0}, 0, 1); + coin.add_component(Rigidbody::Data { .body_type = Rigidbody::BodyType::KINEMATIC, .kinematic_collision = false, .collision_layers = {COLL_LAY_PLAYER}, }); - coin.add_component((size.x / 2)-3).active = false; - crepe::OptionalRef coin_sprite = coin.add_component(Asset{"asset/coin/coin1_TVOS.png"}, Sprite::Data{ - .sorting_in_layer = SORT_IN_LAY_COINS, - .order_in_layer = 0, - .size = size, - }); + coin.add_component((size.x / 2) - 3).active = false; + crepe::OptionalRef coin_sprite = coin.add_component( + Asset {"asset/coin/coin1_TVOS.png"}, + Sprite::Data { + .sorting_in_layer = SORT_IN_LAY_COINS, + .order_in_layer = 0, + .size = size, + } + ); coin_sprite->active = false; - coin.add_component(coin_sprite, ivec2{32, 32}, uvec2{8, 1}, - Animator::Data{ - .fps = 15, - .looping = true, - }); - coin.add_component(Asset{"asset/sfx/coin_pickup_1.ogg"}); + coin.add_component( + coin_sprite, ivec2 {32, 32}, uvec2 {8, 1}, + Animator::Data { + .fps = 15, + .looping = true, + } + ); + coin.add_component(Asset {"asset/sfx/coin_pickup_1.ogg"}); return coin_counter; } diff --git a/game/coins/CoinSubScene.h b/game/coins/CoinSubScene.h index ddb6450..7a1c60a 100644 --- a/game/coins/CoinSubScene.h +++ b/game/coins/CoinSubScene.h @@ -8,5 +8,5 @@ class Scene; class CoinSubScene { public: - int create(crepe::Scene & scn,int coin_counter); + int create(crepe::Scene & scn, int coin_counter); }; diff --git a/game/coins/CoinSystemScript.cpp b/game/coins/CoinSystemScript.cpp index a58e3fd..1634aa9 100644 --- a/game/coins/CoinSystemScript.cpp +++ b/game/coins/CoinSystemScript.cpp @@ -10,17 +10,13 @@ using namespace crepe; using namespace std; +void CoinSystemScript::init() { engine.seed(rd()); } - -void CoinSystemScript::init() { - engine.seed(rd()); -} - -void CoinSystemScript::add_location(const crepe::vec2& location){ +void CoinSystemScript::add_location(const crepe::vec2 & location) { coin_locations.push_back(CoinData(location)); } -float CoinSystemScript::preset_1(const vec2 & begin_position){ +float CoinSystemScript::preset_1(const vec2 & begin_position) { vec2 top = {begin_position.x, begin_position.y - (this->ROW_OFFSET_1)}; vec2 bottom = {begin_position.x, begin_position.y + (this->ROW_OFFSET_1)}; @@ -31,7 +27,7 @@ float CoinSystemScript::preset_1(const vec2 & begin_position){ } // Add locations for the bottom row - bottom.x +=this->COLUM_OFFSET_1 * COLUM_AMOUNT_1; + bottom.x += this->COLUM_OFFSET_1 * COLUM_AMOUNT_1; for (int i = 0; i < COLUM_AMOUNT_1; ++i) { add_location(bottom); bottom.x += this->COLUM_OFFSET_1; @@ -45,22 +41,24 @@ float CoinSystemScript::preset_1(const vec2 & begin_position){ } // Add locations for the next set of the bottom row - bottom.x +=this->COLUM_OFFSET_1 * COLUM_AMOUNT_1; + bottom.x += this->COLUM_OFFSET_1 * COLUM_AMOUNT_1; for (int i = 0; i < COLUM_AMOUNT_1; ++i) { add_location(bottom); bottom.x += this->COLUM_OFFSET_1; } - return bottom.x-begin_position.x; + return bottom.x - begin_position.x; } -float CoinSystemScript::preset_2(const vec2 & begin_position){ - vec2 top = {begin_position.x+this->COLUM_OFFSET_2, begin_position.y - this->ROW_OFFSET_2}; +float CoinSystemScript::preset_2(const vec2 & begin_position) { + vec2 top + = {begin_position.x + this->COLUM_OFFSET_2, begin_position.y - this->ROW_OFFSET_2}; vec2 middle = begin_position; - vec2 bottom = {begin_position.x+this->COLUM_OFFSET_2, begin_position.y + this->ROW_OFFSET_2}; + vec2 bottom + = {begin_position.x + this->COLUM_OFFSET_2, begin_position.y + this->ROW_OFFSET_2}; // Add locations for the next set of the bottom row - for (int i = 0; i < COLUM_AMOUNT_2-2; ++i) { + for (int i = 0; i < COLUM_AMOUNT_2 - 2; ++i) { add_location(bottom); bottom.x += this->COLUM_OFFSET_2; } @@ -72,18 +70,17 @@ float CoinSystemScript::preset_2(const vec2 & begin_position){ } // Add locations for the next set of the top row - for (int i = 0; i < COLUM_AMOUNT_2-2; ++i) { + for (int i = 0; i < COLUM_AMOUNT_2 - 2; ++i) { add_location(top); top.x += this->COLUM_OFFSET_2; } - return middle.x-begin_position.x; + return middle.x - begin_position.x; } -float CoinSystemScript::preset_3(const vec2 & begin_position){ +float CoinSystemScript::preset_3(const vec2 & begin_position) { vec2 location = {begin_position.x, begin_position.y - (this->ROW_OFFSET_3)}; - // Add locations for the top row for (int i = 0; i < COLUM_AMOUNT_3; ++i) { add_location(location); @@ -91,7 +88,7 @@ float CoinSystemScript::preset_3(const vec2 & begin_position){ } // Add locations for the bottom row - location.y +=this->ROW_OFFSET_3; + location.y += this->ROW_OFFSET_3; location.x += this->COLUM_OFFSET_3; for (int i = 0; i < COLUM_AMOUNT_3; ++i) { add_location(location); @@ -99,20 +96,19 @@ float CoinSystemScript::preset_3(const vec2 & begin_position){ } // Add locations for the next set of the top row - location.y +=this->ROW_OFFSET_3; + location.y += this->ROW_OFFSET_3; location.x += this->COLUM_OFFSET_3; for (int i = 0; i < COLUM_AMOUNT_3; ++i) { add_location(location); location.x += this->COLUM_OFFSET_3; } - return location.x-begin_position.x; + return location.x - begin_position.x; } -float CoinSystemScript::preset_4(const vec2 & begin_position){ +float CoinSystemScript::preset_4(const vec2 & begin_position) { vec2 location = {begin_position.x, begin_position.y + (this->ROW_OFFSET_4)}; - // Add locations for the top row for (int i = 0; i < COLUM_AMOUNT_4; ++i) { add_location(location); @@ -120,7 +116,7 @@ float CoinSystemScript::preset_4(const vec2 & begin_position){ } // Add locations for the bottom row - location.y -=this->ROW_OFFSET_4; + location.y -= this->ROW_OFFSET_4; location.x += this->COLUM_OFFSET_4; for (int i = 0; i < COLUM_AMOUNT_4; ++i) { add_location(location); @@ -128,32 +124,29 @@ float CoinSystemScript::preset_4(const vec2 & begin_position){ } // Add locations for the next set of the top row - location.y -=this->ROW_OFFSET_4; + location.y -= this->ROW_OFFSET_4; location.x += this->COLUM_OFFSET_4; for (int i = 0; i < COLUM_AMOUNT_4; ++i) { add_location(location); location.x += this->COLUM_OFFSET_4; } - return location.x-begin_position.x; + return location.x - begin_position.x; } -float CoinSystemScript::preset_5(const vec2 & begin_position){ - vec2 location = {begin_position.x, begin_position.y-ROW_OFFSET_5/2}; - for (int i = 0; i < COLUM_AMOUNT_5; ++i){ +float CoinSystemScript::preset_5(const vec2 & begin_position) { + vec2 location = {begin_position.x, begin_position.y - ROW_OFFSET_5 / 2}; + for (int i = 0; i < COLUM_AMOUNT_5; ++i) { add_location(location); location.x += this->COLUM_OFFSET_5; } - return location.x-begin_position.x; + return location.x - begin_position.x; } - - -void CoinSystemScript::frame_update(crepe::duration_t dt) -{ +void CoinSystemScript::frame_update(crepe::duration_t dt) { this->despawn_coins(); this->generate_locations(); - this->spawn_coins(); + this->spawn_coins(); } void CoinSystemScript::despawn_coins() { @@ -163,22 +156,26 @@ void CoinSystemScript::despawn_coins() { // Retrieve all active coin sprites tagged as "coin" RefVector coin_sprites = this->get_components_by_tag("coin"); - for (Sprite& coin_sprite : coin_sprites) { + for (Sprite & coin_sprite : coin_sprites) { if (!coin_sprite.active) continue; // Skip inactive sprites // Retrieve the corresponding Transform, Metadata, and CircleCollider components - Transform& coin_transform = this->get_components_by_id(coin_sprite.game_object_id).front().get(); - Metadata& coin_metadata = this->get_components_by_id(coin_sprite.game_object_id).front().get(); - CircleCollider& coin_collider = this->get_components_by_id(coin_sprite.game_object_id).front().get(); + Transform & coin_transform + = this->get_components_by_id(coin_sprite.game_object_id).front().get(); + Metadata & coin_metadata + = this->get_components_by_id(coin_sprite.game_object_id).front().get(); + CircleCollider & coin_collider + = this->get_components_by_id(coin_sprite.game_object_id) + .front() + .get(); // Check if the coin is out of bounds based on DESPAWN_DISTANCE if (coin_transform.position.x < position - this->DESPAWN_DISTANCE) { // Find the coin in the coin_locations vector using its name auto it = std::find_if( - coin_locations.begin(), - coin_locations.end(), - [&coin_metadata](const CoinData& data) { - return data.name == coin_metadata.name; + coin_locations.begin(), coin_locations.end(), + [&coin_metadata](const CoinData & data) { + return data.name == coin_metadata.name; } ); @@ -192,31 +189,42 @@ void CoinSystemScript::despawn_coins() { } } -void CoinSystemScript::spawn_coins(){ +void CoinSystemScript::spawn_coins() { // Get the current x-position of the CoinSystem's Transform component float position = this->get_component().position.x; // Iterate through the list of coin locations - for (auto& coin : coin_locations) { + for (auto & coin : coin_locations) { // Skip this coin if it is already active - if (coin.active)continue; + if (coin.active) continue; // Skip this coin if it is not within the defined spawn area - if (coin.start_location.x < this->SPAWN_DISTANCE + position || coin.start_location.x > this->SPAWN_AREA + this->SPAWN_DISTANCE + position) continue; - + if (coin.start_location.x < this->SPAWN_DISTANCE + position + || coin.start_location.x > this->SPAWN_AREA + this->SPAWN_DISTANCE + position) + continue; + // Retrieve all sprites tagged as "coin" RefVector coin_sprites = this->get_components_by_tag("coin"); // Check for an available (inactive) coin sprite - for (Sprite& coin_sprite : coin_sprites) { + for (Sprite & coin_sprite : coin_sprites) { // Skip this sprite if it is already active if (coin_sprite.active) continue; // Found an available (inactive) coin sprite // Retrieve its associated components - Transform & coin_transform = this->get_components_by_id(coin_sprite.game_object_id).front().get(); - Metadata & coin_metadata = this->get_components_by_id(coin_sprite.game_object_id).front().get(); - CircleCollider & coin_collider = this->get_components_by_id(coin_sprite.game_object_id).front().get(); - + Transform & coin_transform + = this->get_components_by_id(coin_sprite.game_object_id) + .front() + .get(); + Metadata & coin_metadata + = this->get_components_by_id(coin_sprite.game_object_id) + .front() + .get(); + CircleCollider & coin_collider + = this->get_components_by_id(coin_sprite.game_object_id) + .front() + .get(); + // Assign data and set active coin.name = coin_metadata.name; coin.active = true; @@ -224,26 +232,23 @@ void CoinSystemScript::spawn_coins(){ coin_collider.active = true; coin_transform.position = coin.start_location; - // Break out of the inner loop since we've assigned this coin to an available sprite + // Break out of the inner loop since we've assigned this coin to an available sprite break; } } } -void CoinSystemScript::generate_locations(){ +void CoinSystemScript::generate_locations() { float position = this->get_component().position.x; - if(position + SPAWN_DISTANCE + SYSTEM_POSITION_OFFSET < this->system_position) return; + if (position + SPAWN_DISTANCE + SYSTEM_POSITION_OFFSET < this->system_position) return; std::discrete_distribution dist(weights.begin(), weights.end()); int selected_index = dist(engine); std::uniform_real_distribution space_dist(SPAWN_SPACING_MIN, SPAWN_SPACING_MAX); float spacing = space_dist(engine); - + // Call the corresponding function and return the new x position - this->system_position += functions[selected_index]({this->system_position,0}); + this->system_position += functions[selected_index]({this->system_position, 0}); this->system_position += spacing; } - - - diff --git a/game/coins/CoinSystemScript.h b/game/coins/CoinSystemScript.h index 6422807..5c94273 100644 --- a/game/coins/CoinSystemScript.h +++ b/game/coins/CoinSystemScript.h @@ -1,28 +1,33 @@ #pragma once -#include #include +#include -#include #include #include #include #include +#include class CoinSystemScript : public crepe::Script { private: - struct CoinData{ - crepe::vec2 start_location = {0,0}; + struct CoinData { + crepe::vec2 start_location = {0, 0}; std::string name = ""; bool active = false; - CoinData(crepe::vec2 start_location) : start_location(start_location),name(""), active(false) {} + CoinData(crepe::vec2 start_location) + : start_location(start_location), + name(""), + active(false) {} }; + public: CoinSystemScript() {}; void init() override; void frame_update(crepe::duration_t dt) override; + private: - void add_location(const crepe::vec2& location); + void add_location(const crepe::vec2 & location); void despawn_coins(); void spawn_coins(); void generate_locations(); @@ -31,19 +36,20 @@ private: float preset_3(const crepe::vec2 & begin_position); float preset_4(const crepe::vec2 & begin_position); float preset_5(const crepe::vec2 & begin_position); + private: - std::vector> functions = { - [this](const crepe::vec2& pos) { return preset_1(pos); }, - [this](const crepe::vec2& pos) { return preset_2(pos); }, - [this](const crepe::vec2& pos) { return preset_3(pos); }, - [this](const crepe::vec2& pos) { return preset_4(pos); }, - [this](const crepe::vec2& pos) { return preset_5(pos); } - }; - std::vector weights = {20, 20,20,20, 20}; + std::vector> functions + = {[this](const crepe::vec2 & pos) { return preset_1(pos); }, + [this](const crepe::vec2 & pos) { return preset_2(pos); }, + [this](const crepe::vec2 & pos) { return preset_3(pos); }, + [this](const crepe::vec2 & pos) { return preset_4(pos); }, + [this](const crepe::vec2 & pos) { return preset_5(pos); }}; + std::vector weights = {20, 20, 20, 20, 20}; std::random_device rd; std::default_random_engine engine; float system_position = 1400; static constexpr float SYSTEM_POSITION_OFFSET = 200; + private: static constexpr float SPAWN_SPACING_MIN = 400; static constexpr float SPAWN_SPACING_MAX = 1000; @@ -51,48 +57,50 @@ private: static constexpr float DESPAWN_DISTANCE = 600; static constexpr float SPAWN_AREA = 50; std::vector coin_locations; + private: -// preset one settings -// ***** ***** -// -// -// -// ***** ***** + // preset one settings + // ***** ***** + // + // + // + // ***** ***** static constexpr float ROW_OFFSET_1 = 100; static constexpr float COLUM_OFFSET_1 = 25; static constexpr int COLUM_AMOUNT_1 = 5; + private: -// preset two settings -// -// ******** -// ********** -// ******** -// + // preset two settings + // + // ******** + // ********** + // ******** + // static constexpr float ROW_OFFSET_2 = 25; static constexpr float COLUM_OFFSET_2 = 25; static constexpr int COLUM_AMOUNT_2 = 10; -// preset three settings -// *** -// -// *** -// -// *** + // preset three settings + // *** + // + // *** + // + // *** static constexpr float ROW_OFFSET_3 = 100; static constexpr float COLUM_OFFSET_3 = 25; static constexpr int COLUM_AMOUNT_3 = 3; -// preset four settings -// *** -// -// *** -// -// *** + // preset four settings + // *** + // + // *** + // + // *** static constexpr float ROW_OFFSET_4 = 100; static constexpr float COLUM_OFFSET_4 = 25; static constexpr int COLUM_AMOUNT_4 = 3; -// preset five settings -// -// *** -// + // preset five settings + // + // *** + // static constexpr float ROW_OFFSET_5 = 25; static constexpr float COLUM_OFFSET_5 = 25; static constexpr int COLUM_AMOUNT_5 = 3; diff --git a/game/hud/HudConfig.h b/game/hud/HudConfig.h index 2da3b66..facc298 100644 --- a/game/hud/HudConfig.h +++ b/game/hud/HudConfig.h @@ -1,34 +1,33 @@ #pragma once #include -static constexpr crepe::vec2 TOP_LEFT = {-530,-230}; -static constexpr const char* HUD_DISTANCE = "hud_distance"; -static constexpr const char* HUD_BEST = "hud_best"; -static constexpr const char* HUD_COINS = "hud_coins"; -static constexpr const char* HUD_FPS = "hud_fps"; +static constexpr crepe::vec2 TOP_LEFT = {-530, -230}; +static constexpr const char * HUD_DISTANCE = "hud_distance"; +static constexpr const char * HUD_BEST = "hud_best"; +static constexpr const char * HUD_COINS = "hud_coins"; +static constexpr const char * HUD_FPS = "hud_fps"; // Distance -static constexpr const char* DISTANCE_PLACEHOLDER = "0000m"; -static constexpr const char* DISTANCE_UNIT = "m"; +static constexpr const char * DISTANCE_PLACEHOLDER = "0000m"; +static constexpr const char * DISTANCE_UNIT = "m"; static constexpr int DISTANCE_LENGTH = 5; static constexpr float DISTANCE_CHAR_WIDTH = 12; static constexpr float STEP_SIZE_DISTANCE = 100; // BEST -static constexpr const char* BEST = "BEST:"; +static constexpr const char * BEST = "BEST:"; static constexpr int BEST_LENGTH = 5; static constexpr float BEST_CHAR_WIDTH = 10; -static constexpr crepe::vec2 BEST_OFFSET = {0,25}; +static constexpr crepe::vec2 BEST_OFFSET = {0, 25}; // COINS -static constexpr const char* COINS = "0000"; +static constexpr const char * COINS = "0000"; static constexpr int COINS_LENGTH = 4; static constexpr float COINS_CHAR_WIDTH = 10; -static constexpr crepe::vec2 COINS_OFFSET = {0,50}; +static constexpr crepe::vec2 COINS_OFFSET = {0, 50}; // FPS -static constexpr const char* FPS = "00"; +static constexpr const char * FPS = "00"; static constexpr int FPS_LENGTH = 2; static constexpr float FPS_CHAR_WIDTH = 10; -static constexpr crepe::vec2 FPS_OFFSET = {1030,0}; - \ No newline at end of file +static constexpr crepe::vec2 FPS_OFFSET = {1030, 0}; diff --git a/game/hud/HudScript.cpp b/game/hud/HudScript.cpp index 4aca15e..8f77706 100644 --- a/game/hud/HudScript.cpp +++ b/game/hud/HudScript.cpp @@ -15,70 +15,79 @@ using namespace std; void HudScript::init() { savemgr = &this->get_save_manager(); - savemgr->set(TOTAL_COINS_RUN,0); + savemgr->set(TOTAL_COINS_RUN, 0); Text & txt = this->get_components_by_name(HUD_BEST).front(); - string record = BEST+to_string(savemgr->get(DISTANCE_GAME,0).get())+DISTANCE_UNIT; + string record + = BEST + to_string(savemgr->get(DISTANCE_GAME, 0).get()) + DISTANCE_UNIT; txt.text = record; - txt.dimensions = {BEST_CHAR_WIDTH*record.size(),(BEST_CHAR_WIDTH)*2}; - txt.offset = TOP_LEFT+FONTOFFSET+BEST_OFFSET + vec2{record.size() * BEST_CHAR_WIDTH/2,0}; - - this->subscribe([this](const GetCoinEvent e)-> bool { return this->get_coin(e); }); - this->subscribe([this](const KeyPressEvent & ev) -> bool { return this->toggle_fps(ev);}); - this->subscribe([this](const EndGameEvent e)-> bool { return this->save(); }); + txt.dimensions = {BEST_CHAR_WIDTH * record.size(), (BEST_CHAR_WIDTH) * 2}; + txt.offset + = TOP_LEFT + FONTOFFSET + BEST_OFFSET + vec2 {record.size() * BEST_CHAR_WIDTH / 2, 0}; + + this->subscribe([this](const GetCoinEvent e) -> bool { + return this->get_coin(e); + }); + this->subscribe([this](const KeyPressEvent & ev) -> bool { + return this->toggle_fps(ev); + }); + this->subscribe([this](const EndGameEvent e) -> bool { + return this->save(); + }); } -bool HudScript::toggle_fps(crepe::KeyPressEvent ev){ - if(ev.key != Keycode::END) return false; +bool HudScript::toggle_fps(crepe::KeyPressEvent ev) { + if (ev.key != Keycode::END) return false; Text & txt_fps = this->get_components_by_name(HUD_FPS).front(); this->show_fps = !this->show_fps; - if(this->show_fps) - { + if (this->show_fps) { txt_fps.active = true; - } - else { + } else { txt_fps.active = false; } return true; } void HudScript::frame_update(crepe::duration_t dt) { - + // Distance Text & txt_dt = this->get_components_by_name(HUD_DISTANCE).front(); Transform & tf = this->get_components_by_name(PLAYER_NAME).front(); - string distance = to_string(static_cast(tf.position.x/STEP_SIZE_DISTANCE)) + DISTANCE_UNIT; + string distance + = to_string(static_cast(tf.position.x / STEP_SIZE_DISTANCE)) + DISTANCE_UNIT; this->distance_st = distance; txt_dt.text = distance; - txt_dt.dimensions = {DISTANCE_CHAR_WIDTH*distance.size(),(DISTANCE_CHAR_WIDTH)*2}; - txt_dt.offset = TOP_LEFT+FONTOFFSET + vec2{distance.size() * DISTANCE_CHAR_WIDTH/2,0}; + txt_dt.dimensions = {DISTANCE_CHAR_WIDTH * distance.size(), (DISTANCE_CHAR_WIDTH) * 2}; + txt_dt.offset + = TOP_LEFT + FONTOFFSET + vec2 {distance.size() * DISTANCE_CHAR_WIDTH / 2, 0}; // Coins Text & txt_co = this->get_components_by_name(HUD_COINS).front(); string amount_of_coins = to_string(this->coin_amount); this->coin_amount_st = amount_of_coins; txt_co.text = amount_of_coins; - txt_co.dimensions = {COINS_CHAR_WIDTH*amount_of_coins.size(),(COINS_CHAR_WIDTH)*2}; - txt_co.offset = TOP_LEFT+FONTOFFSET+COINS_OFFSET + vec2{amount_of_coins.size() * COINS_CHAR_WIDTH/2,0}; + txt_co.dimensions = {COINS_CHAR_WIDTH * amount_of_coins.size(), (COINS_CHAR_WIDTH) * 2}; + txt_co.offset = TOP_LEFT + FONTOFFSET + COINS_OFFSET + + vec2 {amount_of_coins.size() * COINS_CHAR_WIDTH / 2, 0}; // FPS Text & txt_fps = this->get_components_by_name(HUD_FPS).front(); float fps = this->get_loop_timer().get_fps(); string fps_amount = to_string(this->get_loop_timer().get_fps()); txt_fps.text = fps_amount; - txt_fps.dimensions = {FPS_CHAR_WIDTH*fps_amount.size(),(FPS_CHAR_WIDTH)*2}; - txt_fps.offset = TOP_LEFT+FONTOFFSET+FPS_OFFSET + vec2{fps_amount.size() * FPS_CHAR_WIDTH/2,0}; - if(fps >= 30) txt_fps.data.text_color = Color::YELLOW; - if(fps >= 50) txt_fps.data.text_color = Color::GREEN; - if(fps < 30) txt_fps.data.text_color = Color::RED; + txt_fps.dimensions = {FPS_CHAR_WIDTH * fps_amount.size(), (FPS_CHAR_WIDTH) * 2}; + txt_fps.offset = TOP_LEFT + FONTOFFSET + FPS_OFFSET + + vec2 {fps_amount.size() * FPS_CHAR_WIDTH / 2, 0}; + if (fps >= 30) txt_fps.data.text_color = Color::YELLOW; + if (fps >= 50) txt_fps.data.text_color = Color::GREEN; + if (fps < 30) txt_fps.data.text_color = Color::RED; } - -bool HudScript::get_coin(const GetCoinEvent e){ +bool HudScript::get_coin(const GetCoinEvent e) { this->coin_amount = e.amount_of_coins; return true; } -bool HudScript::save(){ +bool HudScript::save() { SaveManager & savemgr = this->get_save_manager(); savemgr.set(TOTAL_COINS_RUN, this->coin_amount); savemgr.set(DISTANCE_RUN, this->distance_st); diff --git a/game/hud/HudScript.h b/game/hud/HudScript.h index 5b9ec17..2b789db 100644 --- a/game/hud/HudScript.h +++ b/game/hud/HudScript.h @@ -15,8 +15,9 @@ public: bool get_coin(const GetCoinEvent e); bool toggle_fps(crepe::KeyPressEvent ev); bool save(); + private: - crepe::SaveManager* savemgr; + crepe::SaveManager * savemgr; bool show_fps = false; int coin_amount = 0; std::string coin_amount_st = ""; diff --git a/game/hud/HudSubScene.cpp b/game/hud/HudSubScene.cpp index 8b87a2e..ca81614 100644 --- a/game/hud/HudSubScene.cpp +++ b/game/hud/HudSubScene.cpp @@ -6,42 +6,63 @@ #include #include - using namespace crepe; using namespace std; -void HudSubScene::create(Scene & scn){ - +void HudSubScene::create(Scene & scn) { + // Distance GameObject hud_dis = scn.new_object(HUD_DISTANCE); - crepe::vec2 size_distance = {DISTANCE_CHAR_WIDTH*DISTANCE_LENGTH,(DISTANCE_CHAR_WIDTH)*2}; - hud_dis.add_component(size_distance, FONT,Text::Data{ - .world_space = false, - .text_color = Color::WHITE, - }, TOP_LEFT+FONTOFFSET + vec2{DISTANCE_LENGTH * DISTANCE_CHAR_WIDTH/2,0}, DISTANCE_PLACEHOLDER); + crepe::vec2 size_distance + = {DISTANCE_CHAR_WIDTH * DISTANCE_LENGTH, (DISTANCE_CHAR_WIDTH) * 2}; + hud_dis.add_component( + size_distance, FONT, + Text::Data { + .world_space = false, + .text_color = Color::WHITE, + }, + TOP_LEFT + FONTOFFSET + vec2 {DISTANCE_LENGTH * DISTANCE_CHAR_WIDTH / 2, 0}, + DISTANCE_PLACEHOLDER + ); // Best GameObject hud_best = scn.new_object(HUD_BEST); - crepe::vec2 size_best = {BEST_CHAR_WIDTH*BEST_LENGTH,(BEST_CHAR_WIDTH)*2}; - hud_best.add_component(size_best, FONT,Text::Data{ - .world_space = false, - .text_color = Color::GREY, - }, TOP_LEFT+FONTOFFSET+BEST_OFFSET + vec2{BEST_LENGTH * BEST_CHAR_WIDTH/2,0}, BEST); + crepe::vec2 size_best = {BEST_CHAR_WIDTH * BEST_LENGTH, (BEST_CHAR_WIDTH) * 2}; + hud_best.add_component( + size_best, FONT, + Text::Data { + .world_space = false, + .text_color = Color::GREY, + }, + TOP_LEFT + FONTOFFSET + BEST_OFFSET + vec2 {BEST_LENGTH * BEST_CHAR_WIDTH / 2, 0}, BEST + ); // Coins GameObject hud_coin = scn.new_object(HUD_COINS); - crepe::vec2 size_coin = {COINS_CHAR_WIDTH*COINS_LENGTH,(COINS_CHAR_WIDTH)*2}; - hud_coin.add_component(size_coin, FONT,Text::Data{ - .world_space = false, - .text_color = Color::YELLOW, - }, TOP_LEFT+FONTOFFSET+COINS_OFFSET + vec2{COINS_LENGTH * COINS_CHAR_WIDTH/2,0}, COINS); + crepe::vec2 size_coin = {COINS_CHAR_WIDTH * COINS_LENGTH, (COINS_CHAR_WIDTH) * 2}; + hud_coin.add_component( + size_coin, FONT, + Text::Data { + .world_space = false, + .text_color = Color::YELLOW, + }, + TOP_LEFT + FONTOFFSET + COINS_OFFSET + vec2 {COINS_LENGTH * COINS_CHAR_WIDTH / 2, 0}, + COINS + ); // Fps GameObject hud_fps = scn.new_object(HUD_FPS); - crepe::vec2 size_fps = {FPS_CHAR_WIDTH*FPS_LENGTH,(FPS_CHAR_WIDTH)*2}; - hud_fps.add_component(size_fps, FONT,Text::Data{ - .world_space = false, - .text_color = Color::GREEN, - }, TOP_LEFT+FONTOFFSET+FPS_OFFSET + vec2{FPS_LENGTH * FPS_CHAR_WIDTH/2,0}, FPS).active = false; + crepe::vec2 size_fps = {FPS_CHAR_WIDTH * FPS_LENGTH, (FPS_CHAR_WIDTH) * 2}; + hud_fps + .add_component( + size_fps, FONT, + Text::Data { + .world_space = false, + .text_color = Color::GREEN, + }, + TOP_LEFT + FONTOFFSET + FPS_OFFSET + vec2 {FPS_LENGTH * FPS_CHAR_WIDTH / 2, 0}, FPS + ) + .active + = false; } diff --git a/game/hud/HudSubScene.h b/game/hud/HudSubScene.h index be696e9..0cd368e 100644 --- a/game/hud/HudSubScene.h +++ b/game/hud/HudSubScene.h @@ -2,8 +2,7 @@ #include -class HudSubScene -{ +class HudSubScene { public: void create(crepe::Scene & scn); }; diff --git a/game/hud/SpeedScript.cpp b/game/hud/SpeedScript.cpp index c9f7188..d0a4dfe 100644 --- a/game/hud/SpeedScript.cpp +++ b/game/hud/SpeedScript.cpp @@ -9,15 +9,13 @@ using namespace std; void SpeedScript::init() { this->subscribe([this](const KeyPressEvent & ev) -> bool { - if(ev.key != Keycode::HOME) return false; - LoopTimerManager & lp = this->get_loop_timer(); + if (ev.key != Keycode::HOME) return false; + LoopTimerManager & lp = this->get_loop_timer(); this->toggle = !this->toggle; - if(this->toggle) - { - this->timescale = lp.get_time_scale(); + if (this->toggle) { + this->timescale = lp.get_time_scale(); lp.set_time_scale(0); - } - else { + } else { lp.set_time_scale(this->timescale); } @@ -25,12 +23,12 @@ void SpeedScript::init() { }); } -void SpeedScript::fixed_update(crepe::duration_t dt){ - LoopTimerManager & lp = this->get_loop_timer(); - if(this->get_key_state(Keycode::PAGE_UP)){ - lp.set_time_scale(lp.get_time_scale()+0.1); +void SpeedScript::fixed_update(crepe::duration_t dt) { + LoopTimerManager & lp = this->get_loop_timer(); + if (this->get_key_state(Keycode::PAGE_UP)) { + lp.set_time_scale(lp.get_time_scale() + 0.1); } - if(this->get_key_state(Keycode::PAGE_DOWN)){ - lp.set_time_scale(lp.get_time_scale()-0.1); + if (this->get_key_state(Keycode::PAGE_DOWN)) { + lp.set_time_scale(lp.get_time_scale() - 0.1); } } diff --git a/game/hud/SpeedScript.h b/game/hud/SpeedScript.h index 76ada4f..6c15a89 100644 --- a/game/hud/SpeedScript.h +++ b/game/hud/SpeedScript.h @@ -7,8 +7,9 @@ class SpeedScript : public crepe::Script { public: void init() override; void fixed_update(crepe::duration_t dt) override; + private: - crepe::SaveManager* savemgr; + crepe::SaveManager * savemgr; bool toggle = true; float timescale = 1; }; diff --git a/game/main.cpp b/game/main.cpp index b9bebfb..e341353 100644 --- a/game/main.cpp +++ b/game/main.cpp @@ -5,7 +5,6 @@ #include "menus/mainmenu/MainMenuScene.h" #include "menus/shop/ShopMenuScene.h" - using namespace crepe; int main() { diff --git a/game/menus/BannerSubScene.cpp b/game/menus/BannerSubScene.cpp index ea43c69..006a829 100644 --- a/game/menus/BannerSubScene.cpp +++ b/game/menus/BannerSubScene.cpp @@ -3,40 +3,47 @@ #include "../Config.h" -#include #include +#include #include using namespace crepe; using namespace std; -void BannerSubScene::create(Scene & scn,const Data & data){ - GameObject menu_banner = scn.new_object("menu_banner","", {0,-414}); +void BannerSubScene::create(Scene & scn, const Data & data) { + GameObject menu_banner = scn.new_object("menu_banner", "", {0, -414}); menu_banner.add_component( Asset("asset/ui/settings_container/top_middle_setting.png"), - Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+1, - .size = {1100,88}, - }); + Sprite::Data { + .sorting_in_layer = STARTING_SORTING_IN_LAYER + 1, + .size = {1100, 88}, + } + ); menu_banner.add_component( Asset("asset/ui/settings_container/top_2_middle_setting.png"), - Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+1, - .size = {1100,66}, - .position_offset {0,77}, - }); + Sprite::Data { + .sorting_in_layer = STARTING_SORTING_IN_LAYER + 1, + .size = {1100, 66}, + .position_offset {0, 77}, + } + ); menu_banner.add_component( Asset("asset/ui/settings_container/banner_bottom.png"), - Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+1, - .size = {1100,7}, - .position_offset {0,113}, - }); - crepe::vec2 size = {data.banner_title_width,(data.banner_title_width/data.banner_title.size())*2}; - - menu_banner.add_component( size, FONT, Text::Data{ - .world_space = true, - .text_color = Color::WHITE, - }, data.banner_title_offset + FONTOFFSET, data.banner_title); + Sprite::Data { + .sorting_in_layer = STARTING_SORTING_IN_LAYER + 1, + .size = {1100, 7}, + .position_offset {0, 113}, + } + ); + crepe::vec2 size + = {data.banner_title_width, (data.banner_title_width / data.banner_title.size()) * 2}; + menu_banner.add_component( + size, FONT, + Text::Data { + .world_space = true, + .text_color = Color::WHITE, + }, + data.banner_title_offset + FONTOFFSET, data.banner_title + ); } diff --git a/game/menus/BannerSubScene.h b/game/menus/BannerSubScene.h index 888897d..c194dfc 100644 --- a/game/menus/BannerSubScene.h +++ b/game/menus/BannerSubScene.h @@ -1,7 +1,7 @@ #pragma once -#include #include +#include namespace crepe { class Scene; @@ -9,11 +9,12 @@ class Scene; class BannerSubScene { public: -struct Data{ + struct Data { const std::string & banner_title = "NODATA"; const float banner_title_width = 100; - const crepe::vec2 & banner_title_offset = {0,0}; + const crepe::vec2 & banner_title_offset = {0, 0}; }; + public: - void create(crepe::Scene & scn,const Data & data); + void create(crepe::Scene & scn, const Data & data); }; diff --git a/game/menus/ButtonNextMainMenuSubScript.cpp b/game/menus/ButtonNextMainMenuSubScript.cpp index d6e315e..e03a34a 100644 --- a/game/menus/ButtonNextMainMenuSubScript.cpp +++ b/game/menus/ButtonNextMainMenuSubScript.cpp @@ -12,29 +12,31 @@ using namespace crepe; using namespace std; -void ButtonNextMainMenuSubScript::init(){ +void ButtonNextMainMenuSubScript::init() { IButtonScript::init(); - this->subscribe([this](const ButtonPressEvent& e) { return this->on_button_press(e); }); + this->subscribe([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); } -bool ButtonNextMainMenuSubScript::on_button_press(const ButtonPressEvent& e){ - RefVector audios = this->get_components_by_name("background_music"); - +bool ButtonNextMainMenuSubScript::on_button_press(const ButtonPressEvent & e) { + RefVector audios + = this->get_components_by_name("background_music"); + for (AudioSource & audio : audios) { audio.stop(); } SaveManager & savemgr = this->get_save_manager(); - ValueBroker coins = savemgr.get(TOTAL_COINS_RUN,0); - ValueBroker coins_game = savemgr.get(TOTAL_COINS_GAME,0); - savemgr.set(TOTAL_COINS_GAME, coins_game.get()+coins.get()); - - ValueBroker distance = savemgr.get(DISTANCE_RUN,0); - ValueBroker distance_game = savemgr.get(DISTANCE_GAME,0); - if(distance.get() > distance_game.get()) savemgr.set(DISTANCE_GAME, distance.get()); + ValueBroker coins = savemgr.get(TOTAL_COINS_RUN, 0); + ValueBroker coins_game = savemgr.get(TOTAL_COINS_GAME, 0); + savemgr.set(TOTAL_COINS_GAME, coins_game.get() + coins.get()); + + ValueBroker distance = savemgr.get(DISTANCE_RUN, 0); + ValueBroker distance_game = savemgr.get(DISTANCE_GAME, 0); + if (distance.get() > distance_game.get()) savemgr.set(DISTANCE_GAME, distance.get()); this->set_next_scene(MAINMENU_SCENE); return false; } - diff --git a/game/menus/ButtonNextMainMenuSubScript.h b/game/menus/ButtonNextMainMenuSubScript.h index cb5c8ca..0603111 100644 --- a/game/menus/ButtonNextMainMenuSubScript.h +++ b/game/menus/ButtonNextMainMenuSubScript.h @@ -7,9 +7,11 @@ class ButtonNextMainMenuSubScript : public IButtonScript { public: void init() override; - bool on_button_press(const crepe::ButtonPressEvent& e); + bool on_button_press(const crepe::ButtonPressEvent & e); + private: float velocity = 20; + protected: bool transition = false; }; diff --git a/game/menus/ButtonSetMainMenuSubScript.cpp b/game/menus/ButtonSetMainMenuSubScript.cpp index 2181f44..1c6bcb2 100644 --- a/game/menus/ButtonSetMainMenuSubScript.cpp +++ b/game/menus/ButtonSetMainMenuSubScript.cpp @@ -7,15 +7,17 @@ using namespace crepe; using namespace std; -void ButtonSetMainMenuSubScript::init(){ +void ButtonSetMainMenuSubScript::init() { IButtonScript::init(); - this->subscribe([this](const ButtonPressEvent& e) { return this->on_button_press(e); }); + this->subscribe([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); } -bool ButtonSetMainMenuSubScript::on_button_press(const ButtonPressEvent& e){ - RefVector audios = this->get_components_by_name("background_music"); - +bool ButtonSetMainMenuSubScript::on_button_press(const ButtonPressEvent & e) { + RefVector audios + = this->get_components_by_name("background_music"); + this->set_next_scene(MAINMENU_SCENE); return false; } - diff --git a/game/menus/ButtonSetMainMenuSubScript.h b/game/menus/ButtonSetMainMenuSubScript.h index 40e2c11..8891538 100644 --- a/game/menus/ButtonSetMainMenuSubScript.h +++ b/game/menus/ButtonSetMainMenuSubScript.h @@ -7,9 +7,11 @@ class ButtonSetMainMenuSubScript : public IButtonScript { public: void init() override; - bool on_button_press(const crepe::ButtonPressEvent& e); + bool on_button_press(const crepe::ButtonPressEvent & e); + private: float velocity = 20; + protected: bool transition = false; }; diff --git a/game/menus/ButtonSetShopSubScript.cpp b/game/menus/ButtonSetShopSubScript.cpp index 67005a7..4f395eb 100644 --- a/game/menus/ButtonSetShopSubScript.cpp +++ b/game/menus/ButtonSetShopSubScript.cpp @@ -4,13 +4,14 @@ using namespace crepe; using namespace std; -void ButtonSetShopSubScript::init(){ +void ButtonSetShopSubScript::init() { IButtonScript::init(); - this->subscribe([this](const ButtonPressEvent& e) { return this->on_button_press(e); }); + this->subscribe([this](const ButtonPressEvent & e) { + return this->on_button_press(e); + }); } -bool ButtonSetShopSubScript::on_button_press(const ButtonPressEvent& e){ +bool ButtonSetShopSubScript::on_button_press(const ButtonPressEvent & e) { this->set_next_scene(SHOP_SCENE); return false; } - diff --git a/game/menus/ButtonSetShopSubScript.h b/game/menus/ButtonSetShopSubScript.h index 8edc7bf..7a96cdf 100644 --- a/game/menus/ButtonSetShopSubScript.h +++ b/game/menus/ButtonSetShopSubScript.h @@ -7,9 +7,11 @@ class ButtonSetShopSubScript : public IButtonScript { public: void init() override; - bool on_button_press(const crepe::ButtonPressEvent& e); + bool on_button_press(const crepe::ButtonPressEvent & e); + private: float velocity = 20; + protected: bool transition = false; }; diff --git a/game/menus/ButtonSubScene.cpp b/game/menus/ButtonSubScene.cpp index 5f7f2b0..e41c798 100644 --- a/game/menus/ButtonSubScene.cpp +++ b/game/menus/ButtonSubScene.cpp @@ -10,45 +10,53 @@ #include "../Config.h" #include -#include -#include #include -#include #include +#include +#include +#include using namespace crepe; using namespace std; -void ButtonSubScene::create(Scene & scn,const Data & data){ - GameObject button_object = scn.new_object("button",data.tag,data.position,0,data.scale); - this->set_button_overlay(button_object,data); - this->btn_text(button_object,data); - this->set_script(button_object,data); - this->set_icon(button_object,data); +void ButtonSubScene::create(Scene & scn, const Data & data) { + GameObject button_object + = scn.new_object("button", data.tag, data.position, 0, data.scale); + this->set_button_overlay(button_object, data); + this->btn_text(button_object, data); + this->set_script(button_object, data); + this->set_icon(button_object, data); } -void ButtonSubScene::btn_text(crepe::GameObject & button_object,const Data & data){ +void ButtonSubScene::btn_text(crepe::GameObject & button_object, const Data & data) { - crepe::vec2 size = {data.text_width,(data.text_width/data.text.size())*2}; - button_object.add_component(size, FONT,Text::Data{ - .world_space = data.worldspace, - .text_color = Color::WHITE, - }, data.text_offset+FONTOFFSET, data.text); + crepe::vec2 size = {data.text_width, (data.text_width / data.text.size()) * 2}; + button_object.add_component( + size, FONT, + Text::Data { + .world_space = data.worldspace, + .text_color = Color::WHITE, + }, + data.text_offset + FONTOFFSET, data.text + ); } -void ButtonSubScene::set_script(crepe::GameObject & button_object,const Data & data){ +void ButtonSubScene::set_script(crepe::GameObject & button_object, const Data & data) { switch (data.script_type) { case ScriptSelect::PREVIEW: - button_object.add_component().set_script(); + button_object.add_component() + .set_script(); break; case ScriptSelect::SHOP: button_object.add_component().set_script(); break; case ScriptSelect::MAINMENU: - button_object.add_component().set_script(); + button_object.add_component() + .set_script(); break; case ScriptSelect::NEXT: - button_object.add_component().set_script(); + button_object.add_component() + .set_script(); break; case ScriptSelect::NONE: button_object.add_component().set_script(); @@ -56,100 +64,141 @@ void ButtonSubScene::set_script(crepe::GameObject & button_object,const Data & d } } -void ButtonSubScene::set_icon(crepe::GameObject & button_object,const Data & data){ +void ButtonSubScene::set_icon(crepe::GameObject & button_object, const Data & data) { switch (data.icon_type) { case IconSelect::SHOP: - button_object.add_component(Asset("asset/ui/buttonCoinsSmall.png"),Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+3 + data.sorting_layer_offset, - .size = ICON_SIZE, - .position_offset = data.icon_offset, - .world_space = data.worldspace, - }); + button_object.add_component( + Asset("asset/ui/buttonCoinsSmall.png"), + Sprite::Data { + .sorting_in_layer + = STARTING_SORTING_IN_LAYER + 3 + data.sorting_layer_offset, + .size = ICON_SIZE, + .position_offset = data.icon_offset, + .world_space = data.worldspace, + } + ); break; case IconSelect::COINS: - button_object.add_component(Asset("asset/ui/buttonCoinsSmall.png"),Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+3 + data.sorting_layer_offset, - .size = ICON_SIZE, - .position_offset = data.icon_offset, - .world_space = data.worldspace, - }); + button_object.add_component( + Asset("asset/ui/buttonCoinsSmall.png"), + Sprite::Data { + .sorting_in_layer + = STARTING_SORTING_IN_LAYER + 3 + data.sorting_layer_offset, + .size = ICON_SIZE, + .position_offset = data.icon_offset, + .world_space = data.worldspace, + } + ); break; case IconSelect::NONE: break; } } -void ButtonSubScene::set_button_overlay(crepe::GameObject & button_object,const Data & data){ +void ButtonSubScene::set_button_overlay(crepe::GameObject & button_object, const Data & data) { switch (data.button_type) { case ButtonSelect::LARGE: - this->large_btn_overlay(button_object,data); + this->large_btn_overlay(button_object, data); break; case ButtonSelect::BACK: - this->back_btn_overlay(button_object,data); + this->back_btn_overlay(button_object, data); break; case ButtonSelect::NEXT: - this->next_btn_overlay(button_object,data); + this->next_btn_overlay(button_object, data); break; } } -void ButtonSubScene::large_btn_overlay(crepe::GameObject & button_object,const Data & data){ - button_object.add_component(Asset("asset/ui/buttonBacking.png"),Sprite::Data{ - .sorting_in_layer = STARTING_SORTING_IN_LAYER+1 + data.sorting_layer_offset, - .size = LARGE_OVERLAY_SIZE, - .world_space = data.worldspace, - }); - button_object.add_component