diff --git a/assets/galaxy_ptree.json b/assets/galaxy_ptree.json new file mode 100755 index 0000000..197131c --- /dev/null +++ b/assets/galaxy_ptree.json @@ -0,0 +1,43 @@ +{ + "Space":[ + { + "name": "galaxy_1", + "position":{ + "x_coord": 0.5, + "y_coord": 0.5 + }, + "texture": "galaxy_1.png", + "scale": 1.0, + "Stars": [ + { + "name": "star_1", + "position": { + "x_coord": 0.2, + "y_coord": 0.3 + }, + "texture": "star_1.png", + "scale": 1.0, + "levels": [ + { + "name": "level_1" + } + ] + }, + { + "name": "star_2", + "position": { + "x_coord": 0.2, + "y_coord": 0.3 + }, + "texture": "star_2.png", + "scale": 1.0, + "levels": [ + { + "name": "level_1" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy.cpp b/game/galaxy.cpp similarity index 77% rename from windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy.cpp rename to game/galaxy.cpp index ba17e04..fb9f6b4 100755 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy.cpp +++ b/game/galaxy.cpp @@ -1,2 +1,4 @@ #include "galaxy.h" + + diff --git a/game/galaxy.h b/game/galaxy.h new file mode 100755 index 0000000..420a8ca --- /dev/null +++ b/game/galaxy.h @@ -0,0 +1,24 @@ +#ifndef GALAXY_H +#define GALAXY_H + +#include "include/Engine.h" + +#include "galaxy_objects.h" + +class Galaxy { +public: + + // ====== All objects ======= + std::vector Stars; + // ====== All objects ======= + + + +private: + + + +}; + + +#endif diff --git a/game/galaxy_menu.cpp b/game/galaxy_menu.cpp new file mode 100755 index 0000000..b35231f --- /dev/null +++ b/game/galaxy_menu.cpp @@ -0,0 +1,14 @@ + +#include "galaxy_menu.h" + +GalaxyMenu::GalaxyMenu() +{ +} + +GalaxyMenu::~GalaxyMenu() +{ +} + +void GalaxyMenu::InitGalaxyMenu(std::string config) { + /*...Read ptree from config...*/ +} \ No newline at end of file diff --git a/game/galaxy_menu.h b/game/galaxy_menu.h new file mode 100755 index 0000000..a69bc56 --- /dev/null +++ b/game/galaxy_menu.h @@ -0,0 +1,40 @@ +#ifndef GALAXY_MENU_H +#define GALAXY_MENU_H + +#include +#include + +#include "galaxy.h" + +class GalaxyMenu { +public: + + GalaxyMenu(); + ~GalaxyMenu(); + + // ======== All objects ========= + std::vector galaxies; + // ======== All objects ========= + + + // ======== Main Methods ======== + void InitGalaxyMenu(std::string config); + void DrawGalaxyMenu(); + void UpdateGalaxyMenu(); + // ======== Main Methods ======== + + void InteractWithGalaxy(/*..Vector/Vector/Int..*/); // Prototype for mouse/tap events + + // Params + Eigen::Vector2f menuPosition; + float menuScale; + +private: + + void readSaveData(); // inner init method + + +}; + + +#endif \ No newline at end of file diff --git a/game/galaxy_objects.cpp b/game/galaxy_objects.cpp new file mode 100755 index 0000000..3b2d3b6 --- /dev/null +++ b/game/galaxy_objects.cpp @@ -0,0 +1 @@ +#include "galaxy_objects.h" \ No newline at end of file diff --git a/game/galaxy_objects.h b/game/galaxy_objects.h new file mode 100755 index 0000000..9d9654f --- /dev/null +++ b/game/galaxy_objects.h @@ -0,0 +1,32 @@ +#ifndef GALAXY_OBJECTS_H +#define GALAXY_OBJECTS_H + +#include "include/Engine.h" +#include + +class StarObject { +public: + + //StarObject(Eigen::Vector2f pos, std::string id/*star name*/); + //~StarObject(); + + // ::::::::::::: + Eigen::Vector2f GetPosition(); + // ::::::::::::: + + // ::#Levels#:: + std::vector levels; + + // ::#Params#:: + std::string selfTexture; + std::string name; + Eigen::Vector2f selfPosition; + float selfScale; + +private: + + +}; + + +#endif \ No newline at end of file diff --git a/game/main_code.cpp b/game/main_code.cpp index 4aee09c..976d321 100644 --- a/game/main_code.cpp +++ b/game/main_code.cpp @@ -1,671 +1,677 @@ -#include -#include -#include -#include - -#include "include/Engine.h" - -#include "menucode.h" - -#include "main_code.h" -#include - -boost::signals2::signal OnTapUpSignal; -boost::signals2::signal OnTapUpAfterMoveSignal; -boost::signals2::signal OnTapDownSignal; -boost::signals2::signal OnFlingSignal; -boost::signals2::signal OnScrollSignal; - -boost::signals2::signal OnDrawSignal; - - -const std::string CONST_BLOCK_TEXTURE1 = "block1_mod1"; -const std::string CONST_BLOCK_TEXTURE2 = "block2_mod1"; -const std::string CONST_BLOCK_TEXTURE3 = "block3_mod1"; - -const std::string CONST_BONUS_GOTHROUGH_TEXTURE = "bonus_gothrough_mod1"; -const std::string CONST_BONUS_MULTIPLIER_TEXTURE = "bonus_multiplier_mod1"; -const std::string CONST_BONUS_FLOOR_TEXTURE = "bonus_floor_mod1"; - -const std::string CONST_BALL_TEXTURE = "ball_mod1"; - -const std::string CONST_BALLGLOW_TEXTURE = "ball_glow"; - -const std::string CONST_REFLECTOR_TEXTURE = "reflector_mod1"; - -const std::string CONST_WALL_LEFT_TEXTURE = "wall_left_mod2"; -const std::string CONST_WALL_RIGHT_TEXTURE = "wall_right_mod2"; -const std::string CONST_WALL_UP_TEXTURE = "wall_up_mod2"; - -const std::string CONST_WALL_BONUS_TEXTURE = "wall_bonus_mod2"; - -const std::string CONST_BACK_BTN_TEXTURE = "back_btn"; -const std::string CONST_SLIDE_UP_BTN_TEXTURE = "slide_up_btn"; -const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE = "tap_to_continue_btn"; -const std::string CONST_LOADING_TEXTURE = "loading"; -const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small"; -const std::string CONST_LOADING_BACKGROUND_BLACK = "loading_background_black"; -const std::string CONST_CREDITS_TEXTURE = "credits"; - -const float CONST_CREDITS_SHOW_TIME = 150.f; - - -TMyApplication* Application; - - -void TMyApplication::InnerInit() -{ - - Application = this; - -#ifdef TARGET_WIN32 -#ifdef NDEBUG - //ST::PathToResources = "resources/"; - ST::PathToResources = "../../../assets/"; -#else - ST::PathToResources = "../../../assets/"; -#endif -#endif - -#ifdef TARGET_IOS - ST::PathToResources = "assets/"; -#endif - - if (Console != NULL) - { - *Console<<"APP INIT\n"; - } - srand (static_cast(time(NULL))); - GameState = CONST_GAMESTATE_PRELOADING; - StateTimer = 0.f; - - /* - ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex.txt", "shader1fragment.txt"); - ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt"); - ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt"); - Renderer->PushShader("DefaultShader"); - */ - - ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/texture-shader.vertex", "shaders/texture-shader.fragment"); - ResourceManager->ShaderManager.AddShader("ColorShader", "shaders/color-shader.vertex", "shaders/color-shader.fragment"); - ResourceManager->ShaderManager.AddShader("FrameShader", "shaders/frameshader_vertex.txt", "shaders/frameshader_fragment.txt"); - ResourceManager->ShaderManager.AddShader("BrickShader", "shaders/brickshader_vertex.txt", "shaders/brickshader_fragment.txt"); - ResourceManager->ShaderManager.AddShader(ParticleEffect::PARTICLE_SHADER, "shaders/particle-shader.vertex", "shaders/particle-shader.fragment"); - Renderer->PushShader("DefaultShader"); - - ResourceManager->TexList.AddTexture(CONST_LOADING_BACKGROUND_BLACK + ".png", CONST_LOADING_BACKGROUND_BLACK); - ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE); - ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE); - - ResourceManager->TexList.AddTexture("console_bkg.bmp"); - - - ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512); - - OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - Inited = true; - - Renderer->SetOrthoProjection(); - - Renderer->SetFullScreenViewport(); - Application->SetGameLevelScreenScale(); - //GameLevel.SetLevelScale(); - EffectsInit(); - - // ------- UI ------- +#include +#include +#include +#include + +#include "include/Engine.h" + +#include "menucode.h" + +#include "main_code.h" +#include + +boost::signals2::signal OnTapUpSignal; +boost::signals2::signal OnTapUpAfterMoveSignal; +boost::signals2::signal OnTapDownSignal; +boost::signals2::signal OnFlingSignal; +boost::signals2::signal OnScrollSignal; + +boost::signals2::signal OnDrawSignal; + + +const std::string CONST_BLOCK_TEXTURE1 = "block1_mod1"; +const std::string CONST_BLOCK_TEXTURE2 = "block2_mod1"; +const std::string CONST_BLOCK_TEXTURE3 = "block3_mod1"; + +const std::string CONST_BONUS_GOTHROUGH_TEXTURE = "bonus_gothrough_mod1"; +const std::string CONST_BONUS_MULTIPLIER_TEXTURE = "bonus_multiplier_mod1"; +const std::string CONST_BONUS_FLOOR_TEXTURE = "bonus_floor_mod1"; + +const std::string CONST_BALL_TEXTURE = "ball_mod1"; + +const std::string CONST_BALLGLOW_TEXTURE = "ball_glow"; + +const std::string CONST_REFLECTOR_TEXTURE = "reflector_mod1"; + +const std::string CONST_WALL_LEFT_TEXTURE = "wall_left_mod2"; +const std::string CONST_WALL_RIGHT_TEXTURE = "wall_right_mod2"; +const std::string CONST_WALL_UP_TEXTURE = "wall_up_mod2"; + +const std::string CONST_WALL_BONUS_TEXTURE = "wall_bonus_mod2"; + +const std::string CONST_BACK_BTN_TEXTURE = "back_btn"; +const std::string CONST_SLIDE_UP_BTN_TEXTURE = "slide_up_btn"; +const std::string CONST_TAP_TO_CONTINUE_BTN_TEXTURE = "tap_to_continue_btn"; +const std::string CONST_LOADING_TEXTURE = "loading"; +const std::string CONST_LOGO_SMALL_TEXTURE = "logo_small"; +const std::string CONST_LOADING_BACKGROUND_BLACK = "loading_background_black"; +const std::string CONST_CREDITS_TEXTURE = "credits"; + +const float CONST_CREDITS_SHOW_TIME = 150.f; + + +TMyApplication* Application; + + +void TMyApplication::InnerInit() +{ + + Application = this; + +#ifdef TARGET_WIN32 +#ifdef NDEBUG + //ST::PathToResources = "resources/"; + ST::PathToResources = "../../../assets/"; +#else + ST::PathToResources = "../../../assets/"; +#endif +#endif + +#ifdef TARGET_IOS + ST::PathToResources = "assets/"; +#endif + + if (Console != NULL) + { + *Console<<"APP INIT\n"; + } + srand (static_cast(time(NULL))); + GameState = CONST_GAMESTATE_PRELOADING; + StateTimer = 0.f; + + /* + ResourceManager->ShaderManager.AddShader("DefaultShader", "shader1vertex.txt", "shader1fragment.txt"); + ResourceManager->ShaderManager.AddShader("FrameShader", "frameshader_vertex.txt", "frameshader_fragment.txt"); + ResourceManager->ShaderManager.AddShader("BrickShader", "brickshader_vertex.txt", "brickshader_fragment.txt"); + Renderer->PushShader("DefaultShader"); + */ + + ResourceManager->ShaderManager.AddShader("DefaultShader", "shaders/texture-shader.vertex", "shaders/texture-shader.fragment"); + ResourceManager->ShaderManager.AddShader("ColorShader", "shaders/color-shader.vertex", "shaders/color-shader.fragment"); + ResourceManager->ShaderManager.AddShader("FrameShader", "shaders/frameshader_vertex.txt", "shaders/frameshader_fragment.txt"); + ResourceManager->ShaderManager.AddShader("BrickShader", "shaders/brickshader_vertex.txt", "shaders/brickshader_fragment.txt"); + ResourceManager->ShaderManager.AddShader(ParticleEffect::PARTICLE_SHADER, "shaders/particle-shader.vertex", "shaders/particle-shader.fragment"); + Renderer->PushShader("DefaultShader"); + + ResourceManager->TexList.AddTexture(CONST_LOADING_BACKGROUND_BLACK + ".png", CONST_LOADING_BACKGROUND_BLACK); + ResourceManager->TexList.AddTexture(CONST_LOADING_TEXTURE + ".png", CONST_LOADING_TEXTURE); + ResourceManager->TexList.AddTexture(CONST_LOGO_SMALL_TEXTURE + ".png", CONST_LOGO_SMALL_TEXTURE); + + ResourceManager->TexList.AddTexture("console_bkg.bmp"); + + + ResourceManager->FrameManager.AddFrameRenderBuffer("LevelBuffer", 512, 512); + + OnDrawSignal.connect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); + Inited = true; + + Renderer->SetOrthoProjection(); + + Renderer->SetFullScreenViewport(); + Application->SetGameLevelScreenScale(); + //GameLevel.SetLevelScale(); + EffectsInit(); + + // ------- UI ------- ResourceManager->FontManager.AddFont("arial32", "arial32.png", "arial32.txt"); - ResourceManager->FontManager.AddFont("lucon12", "lucon12.png", "lucon12.txt"); - ResourceManager->FontManager.PushFont("lucon12"); - ResourceManager->newGuiManager.LoadFromConfig("gui_main_menu.json"); - SetButtonsAction(); - // ------- UI ------- -} - -void TMyApplication::InnerDeinit() -{ - Inited = false; - Loaded = false; - if (Console != NULL) - { - *Console<<"APP DEINIT\n"; - } - - OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - - OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); - - - OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - - OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - - OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); - - - OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); - OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - -} - -void TMyApplication::InnerOnTapUp(Vector2f p) -{ - OnTapUpSignal(Vector2f(p(0), p(1))); -} - -void TMyApplication::InnerOnTapUpAfterMove(Vector2f p) -{ - OnTapUpAfterMoveSignal(Vector2f(p(0), p(1))); -} - -void TMyApplication::InnerOnMove(Vector2f p, Vector2f shift) -{ - OnScrollSignal(Vector2f(shift(0), shift(1))); -} - -void TMyApplication::OnFling(Vector2f v) -{ -} - - -void TMyApplication::ApplySignalsToMenu() -{ - - OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - OnTapUpAfterMoveSignal.connect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); - OnFlingSignal.connect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - OnScrollSignal.connect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - OnTapDownSignal.connect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); - -} - - -void TMyApplication::DisapplySignalsToMenu() -{ - OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); - OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); - OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); -} - -void TMyApplication::ApplySignalsToGame() -{ - OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - //OnTapDownSignal.connect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - -} - -void TMyApplication::DisapplySignalsToGame() -{ - OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); - OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); - OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); - //OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); - -} - -void TMyApplication::ApplySignalsToCredits() -{ - OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); -} - - -void TMyApplication::DisapplySignalsToCredits() -{ - OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); -} - -void TMyApplication::LoadResources() -{ - - TextureNamesToLoad.clear(); - - // ::::::::::::::::::::::::::::::::::::: - // :::::::::::::PTREE LOAD:::::::::::::: - - boost::property_tree::ptree Textures_pt; - boost::property_tree::json_parser::read_json(ST::PathToResources + "bg_textures_config.json", Textures_pt); - std::string bg_ext = ".jpeg"; - - // ::::::::::::::::::::::::::::::::::::: - - TextureNamesToLoad.push_back(std::pair("main_menu_bkg_left.png", "main_menu_bkg_left")); - TextureNamesToLoad.push_back(std::pair("main_menu_bkg_right.png", "main_menu_bkg_right")); - TextureNamesToLoad.push_back(std::pair("select_level.png", "select_level")); - /* - TextureNamesToLoad.push_back(std::pair("shutterstock1.png", "shutterstock1")); - TextureNamesToLoad.push_back(std::pair("shutterstock2.png", "shutterstock2")); - TextureNamesToLoad.push_back(std::pair("shutterstock3.png", "shutterstock3")); - TextureNamesToLoad.push_back(std::pair("shutterstock4.png", "shutterstock4")); - TextureNamesToLoad.push_back(std::pair("shutterstock5.png", "shutterstock5")); - TextureNamesToLoad.push_back(std::pair("shutterstock6.png", "shutterstock6")); - TextureNamesToLoad.push_back(std::pair("shutterstock7.png", "shutterstock7")); - TextureNamesToLoad.push_back(std::pair("shutterstock8.png", "shutterstock8")); - TextureNamesToLoad.push_back(std::pair("shutterstock9.png", "shutterstock9")); - TextureNamesToLoad.push_back(std::pair("shutterstock10.png", "shutterstock10")); - TextureNamesToLoad.push_back(std::pair("shutterstock11.png", "shutterstock11")); - TextureNamesToLoad.push_back(std::pair("shutterstock12.png", "shutterstock12")); - */ - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock1")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_2") + bg_ext, "shutterstock2")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_11") + bg_ext, "shutterstock3")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_13") + bg_ext, "shutterstock4")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock5")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock6")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock7")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock8")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock9")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock10")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock11")); - TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock12")); - - - TextureNamesToLoad.push_back(std::pair("levelshot1.png", "levelshot1")); - TextureNamesToLoad.push_back(std::pair("levelshot2.png", "levelshot2")); - TextureNamesToLoad.push_back(std::pair("levelshot3.png", "levelshot3")); - TextureNamesToLoad.push_back(std::pair("levelshot4.png", "levelshot4")); - TextureNamesToLoad.push_back(std::pair("levelshot5.png", "levelshot5")); - TextureNamesToLoad.push_back(std::pair("levelshot6.png", "levelshot6")); - TextureNamesToLoad.push_back(std::pair("levelshot7.png", "levelshot7")); - TextureNamesToLoad.push_back(std::pair("levelshot8.png", "levelshot8")); - TextureNamesToLoad.push_back(std::pair("levelshot9.png", "levelshot9")); - TextureNamesToLoad.push_back(std::pair("levelshot10.png", "levelshot10")); - TextureNamesToLoad.push_back(std::pair("levelshot11.png", "levelshot11")); - TextureNamesToLoad.push_back(std::pair("levelshot12.png", "levelshot12")); - TextureNamesToLoad.push_back(std::pair("game_end.png", "game_end")); - - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE1 + ".png", CONST_BLOCK_TEXTURE1)); - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE2 + ".png", CONST_BLOCK_TEXTURE2)); - TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE3 + ".png", CONST_BLOCK_TEXTURE3)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_GOTHROUGH_TEXTURE + ".png", CONST_BONUS_GOTHROUGH_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_MULTIPLIER_TEXTURE + ".png", CONST_BONUS_MULTIPLIER_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BONUS_FLOOR_TEXTURE + ".png", CONST_BONUS_FLOOR_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BALL_TEXTURE + ".png", CONST_BALL_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BALLGLOW_TEXTURE + ".png", CONST_BALLGLOW_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_LEFT_TEXTURE + ".png", CONST_WALL_LEFT_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_RIGHT_TEXTURE + ".png", CONST_WALL_RIGHT_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_UP_TEXTURE + ".png", CONST_WALL_UP_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_WALL_BONUS_TEXTURE + ".png", CONST_WALL_BONUS_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_REFLECTOR_TEXTURE + ".png", CONST_REFLECTOR_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_BACK_BTN_TEXTURE + ".png", CONST_BACK_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_SLIDE_UP_BTN_TEXTURE + ".png", CONST_SLIDE_UP_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE)); - TextureNamesToLoad.push_back(std::pair(CONST_CREDITS_TEXTURE + ".png", CONST_CREDITS_TEXTURE)); - -#ifdef TARGET_IOS - ResourceManager->SoundManager.LoadMusicLooped("level1ogg.ogg"); -#else - //ResourceManager->SoundManager.LoadMusic("level1ogg.ogg"); -#endif - - ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.png", "droid_sans14_font_charmap.txt"); - ResourceManager->FontManager.PushFont("droid_sans14"); - - TryLoadSavedGame(); - -} - -void TMyApplication::TryLoadSavedGame() -{ - - std::string fileName = GetFilePathUserData("progress.txt"); - - FILE* file = fopen(fileName.c_str(), "r"); - if (file != NULL) - { - char line[100]; - char* r; - r = fgets(line, 100, file); - if (r != NULL) - { - Menu.SetMenuItemCount(toint(r)); - } - fclose(file); - } -} - -void TMyApplication::TrySaveGame() -{ - - std::string fileName = GetFilePathUserData("progress.txt"); - - std::string s = tostr(Menu.GetMenuItemCount()); - FILE* file = fopen(fileName.c_str(), "w"); - if (file != NULL) - { - fputs(s.c_str(), file); - fflush(file); - fclose(file); - } - -} - - - -void TMyApplication::InnerDraw() -{ - glDisable(GL_DEPTH_TEST); - - OnDrawSignal(); - - -} - - -void TMyApplication::InnerUpdate(size_t dt) -{ - - if (GameState == CONST_GAMESTATE_PRELOADING) - { - *SE::Console << "1CONST_GAMESTATE_PRELOADING"; - StateTimer += dt/1000.f; - if (StateTimer >= 1.f) - { - LoadResources(); - GameState = CONST_GAMESTATE_LOADING; - StateTimer = 0.f; - } - } - else if (GameState == CONST_GAMESTATE_LOADING) - { - *SE::Console << "2CONST_GAMESTATE_LOADING"; - StateTimer += dt/1000.f; - if (StateTimer >= 1.f) - { - StateTimer -= 1.f; - } - - if (TextureNamesToLoad.size() != 0) - { - ResourceManager->TexList.AddTexture(TextureNamesToLoad.begin()->first, TextureNamesToLoad.begin()->second); - TextureNamesToLoad.erase(TextureNamesToLoad.begin()); - } - else - { - GameState = CONST_GAMESTATE_MENU; - ApplySignalsToMenu(); - OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - StateTimer = 0.f; - Loaded = true; - } - } - else if (GameState == CONST_GAMESTATE_LEVEL) - { - *SE::Console << "3CONST_GAMESTATE_LEVEL"; - GameLevel.Update(dt); - EffectsUpdate(dt); - } - else if (GameState == CONST_GAMESTATE_MENU) - { - //*SE::Console << "4CONST_GAMESTATE_MENU"; - Menu.Update(dt); - - } - else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL) - { - *SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL"; - GameLevel.Update(dt); - if (GameLevel.IsLoaded()) - { - //*SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL"; - GameState = CONST_GAMESTATE_LEVEL; - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - //CONNECT SLOT - DisapplySignalsToMenu(); - ApplySignalsToGame(); - } - } - else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS) - { - *SE::Console << "6CONST_GAMESTATE_FROM_MENU_TO_CREDITS"; - Menu.Update(dt); - GameCredits.Update(dt); - StateTimer -= dt; - if (StateTimer <= 0.f) - { - GameState = CONST_GAMESTATE_CREDITS; - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - ApplySignalsToCredits(); - StateTimer = 0.f; - } - } - else if (GameState == CONST_GAMESTATE_CREDITS) - { - //*SE::Console << "7CONST_GAMESTATE_CREDITS"; - GameCredits.Update(dt); - } - else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU) - { - Menu.Update(dt); - GameCredits.Update(dt); - StateTimer -= dt; - if (StateTimer <= 0.f) - { - GameState = CONST_GAMESTATE_MENU; - StateTimer = 0.f; - ApplySignalsToMenu(); - OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - } - } -} - - -void TMyApplication::GoFromMenuToGame(int level) -{ -//#ifndef TARGET_IOS -// ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg"); -//#endif - - GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt"); - GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1)); - GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL; - OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); - - DisapplySignalsToMenu(); - -} - -void TMyApplication::GoFromGameToMenu() -{ - //#ifndef TARGET_IOS -// ResourceManager->SoundManager.StopMusic("level1ogg.ogg"); -//#endif - TrySaveGame(); - DisapplySignalsToGame(); - ApplySignalsToMenu(); - GameState = CONST_GAMESTATE_MENU; - OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); -} - -void TMyApplication::GoFromMenuToCredits() -{ - GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS; - StateTimer = CONST_CREDITS_SHOW_TIME; - GameCredits.StartAppear(); - OnDrawSignal.connect(1, boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); - DisapplySignalsToMenu(); - -} - -void TMyApplication::GoFromCreditsToMenu() -{ - - GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU; - StateTimer = CONST_CREDITS_SHOW_TIME; - GameCredits.StartDisappear(); - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); - - DisapplySignalsToCredits(); -} - -void TMyApplication::MarkSetGameLevelPause() -{ - OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); -} - -void TMyApplication::MarkReleaseGameLevelPause() -{ - OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); -} - - -void TMyApplication::OpenNextLevel() -{ - Menu.OpenNextLevel(); -} - -bool TMyApplication::IsLoaded() -{ - return Loaded; -} - -bool TMyApplication::IsInited() -{ - return Inited; -} - -void TMyApplication::SetGameLevelScreenScale() -{ - if ((((float)Renderer->GetScreenWidth())/((float)Renderer->GetScreenHeight())) >= levelScreenRatio) - { - levelScreenHeight = (float)Renderer->GetScreenHeight(); - levelScreenWidth = levelScreenHeight * levelScreenRatio; - } else - { - levelScreenWidth = (float)Renderer->GetScreenWidth(); - levelScreenHeight = levelScreenWidth / levelScreenRatio; - } -} - -float TMyApplication::GetGameLevelScreenWidth() -{ - return levelScreenWidth; -} - -float TMyApplication::GetGameLevelScreenHeight() -{ - return levelScreenHeight; -} - -void TMyApplication::InnerOnMouseDown(TMouseState& mouseState) { - /* - if (mouseState.LeftButtonPressed) { - if ((float)mouseState.X >= (Renderer->GetScreenWidth())*0.25f && (float)mouseState.X <= (Renderer->GetScreenWidth())*0.75f && (float)mouseState.Y >= (Renderer->GetScreenHeight())*0.25f && (float)mouseState.Y <= (Renderer->GetScreenHeight())*0.75f) { - // some tmp code - Application->GoFromMenuToGame(1); - } - } - */ - OnTapDownSignal(Vector2f(mouseState.X, ((Renderer->GetScreenHeight()) - mouseState.Y))); // Temp mouse down action for WIN32 -} - -void TMyApplication::InnerOnMouseMove(TMouseState& mouseState) { - -} - -void TMyApplication::EffectsInit() { - - boost::property_tree::ptree JSONsource; - boost::property_tree::ptree JSONconfig; - std::string effectJSON; - boost::property_tree::json_parser::read_json(ST::PathToResources + "config.json", JSONconfig); - - // LEFT - effectJSON = JSONconfig.get("lefteffect"); - boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); - lsparkler.parse(JSONsource); // parse JSON - lsparkler.load(); // load textures - // RIGHT - effectJSON = JSONconfig.get("righteffect"); - boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); - rsparkler.parse(JSONsource); - rsparkler.load(); - // TOP - effectJSON = JSONconfig.get("topeffect"); - boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); - tsparkler.parse(JSONsource); - tsparkler.load(); - // BOTTOM - effectJSON = JSONconfig.get("boteffect"); - boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); - bsparkler.parse(JSONsource); - bsparkler.load(); - // Level finish - effectJSON = JSONconfig.get("lvlFinish"); - boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); - lvlFirework.parse(JSONsource); - lvlFirework.load(); - - float width = Renderer->GetScreenWidth(); - float height = Renderer->GetScreenHeight(); - - lsparkler.setCoords({ width / 2, height / 2, 0 }); - rsparkler.setCoords({ width / 2, height / 2, 0 }); - tsparkler.setCoords({ width / 2, height / 2, 0 }); - bsparkler.setCoords({ width / 2, height / 2, 0 }); - lvlFirework.setCoords({ width / 2, 0, 0 }); -} - -void TMyApplication::EffectsUpdate(size_t dt) { - lsparkler.update(dt / 1000.f); - rsparkler.update(dt / 1000.f); - tsparkler.update(dt / 1000.f); - bsparkler.update(dt / 1000.f); - lvlFirework.update(dt / 1000.f); -} -void TMyApplication::EffectsDraw() { - lsparkler.draw(); - rsparkler.draw(); - tsparkler.draw(); - bsparkler.draw(); - lvlFirework.draw(); -} - -void TMyApplication::hitSpark(std::string direct,Vector2f Pos) { - if (direct == "left") { - lsparkler.setCoords({ Pos(0),Pos(1),0 }); - lsparkler.stopSpawn(); - lsparkler.startSpawn(); - - } - if (direct == "right") { - rsparkler.setCoords({ Pos(0),Pos(1),0 }); - rsparkler.stopSpawn(); - rsparkler.startSpawn(); - } - if (direct == "up") { - tsparkler.setCoords({ Pos(0),Pos(1),0 }); - tsparkler.stopSpawn(); - tsparkler.startSpawn(); - } - if (direct == "down") { - bsparkler.setCoords({ Pos(0),Pos(1),0 }); - bsparkler.stopSpawn(); - bsparkler.startSpawn(); - } -} - -void TMyApplication::fireworkEffect() { - lvlFirework.stopSpawn(); - lvlFirework.startSpawn(); -} - -void TMyApplication::SetButtonsAction () { - auto backBtn = ResourceManager->newGuiManager.findWidgetByName("backButton"); - if (backBtn) { - backBtn->onMouseDownSignal.connect([this, backBtn](Vector2f pos, int touchNumber) { - this->GameLevel.SetPause(); - this->GameLevel.PrevLevelStateIsStandby = true; - }); - } + ResourceManager->FontManager.AddFont("lucon12", "lucon12.png", "lucon12.txt"); + ResourceManager->FontManager.PushFont("lucon12"); + ResourceManager->newGuiManager.LoadFromConfig("gui_main_menu.json"); + SetButtonsAction(); + // ------- UI ------- + + // TESTS + //Eigen::Vector2f nv(1.0f, 0.0f); + //GalaxyMenu gm("galax", nv, 0.2f); + + +} + +void TMyApplication::InnerDeinit() +{ + Inited = false; + Loaded = false; + if (Console != NULL) + { + *Console<<"APP DEINIT\n"; + } + + OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); + OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); + + OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); + + + OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); + OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); + + OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); + OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); + + OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); + OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); + OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); + + + OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); + OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); + OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); + OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); + +} + +void TMyApplication::InnerOnTapUp(Vector2f p) +{ + OnTapUpSignal(Vector2f(p(0), p(1))); +} + +void TMyApplication::InnerOnTapUpAfterMove(Vector2f p) +{ + OnTapUpAfterMoveSignal(Vector2f(p(0), p(1))); +} + +void TMyApplication::InnerOnMove(Vector2f p, Vector2f shift) +{ + OnScrollSignal(Vector2f(shift(0), shift(1))); +} + +void TMyApplication::OnFling(Vector2f v) +{ +} + + +void TMyApplication::ApplySignalsToMenu() +{ + + OnTapUpSignal.connect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); + OnTapUpAfterMoveSignal.connect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); + OnFlingSignal.connect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); + OnScrollSignal.connect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); + OnTapDownSignal.connect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); + +} + + +void TMyApplication::DisapplySignalsToMenu() +{ + OnTapUpSignal.disconnect(boost::bind(&TGameMenu::OnTapUp, boost::ref(Menu), _1)); + OnTapUpAfterMoveSignal.disconnect(boost::bind(&TGameMenu::OnTapUpAfterMove, boost::ref(Menu), _1)); + OnFlingSignal.disconnect(boost::bind(&TGameMenu::OnFling, boost::ref(Menu), _1)); + OnScrollSignal.disconnect(boost::bind(&TGameMenu::OnScroll, boost::ref(Menu), _1)); + OnTapDownSignal.disconnect(boost::bind(&TGameMenu::OnTapDown, boost::ref(Menu), _1)); +} + +void TMyApplication::ApplySignalsToGame() +{ + OnTapUpSignal.connect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); + OnFlingSignal.connect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); + OnScrollSignal.connect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); + //OnTapDownSignal.connect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); + +} + +void TMyApplication::DisapplySignalsToGame() +{ + OnTapUpSignal.disconnect(boost::bind(&TGameLevel::OnTapUp, boost::ref(GameLevel), _1)); + OnFlingSignal.disconnect(boost::bind(&TGameLevel::OnFling, boost::ref(GameLevel), _1)); + OnScrollSignal.disconnect(boost::bind(&TGameLevel::OnScroll, boost::ref(GameLevel), _1)); + //OnTapDownSignal.disconnect(boost::bind(&TGameLevel::OnTapDown, boost::ref(GameLevel), _1)); + +} + +void TMyApplication::ApplySignalsToCredits() +{ + OnTapDownSignal.connect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); +} + + +void TMyApplication::DisapplySignalsToCredits() +{ + OnTapDownSignal.disconnect(boost::bind(&TGameCredits::OnTapDown, boost::ref(GameCredits), _1)); +} + +void TMyApplication::LoadResources() +{ + + TextureNamesToLoad.clear(); + + // ::::::::::::::::::::::::::::::::::::: + // :::::::::::::PTREE LOAD:::::::::::::: + + boost::property_tree::ptree Textures_pt; + boost::property_tree::json_parser::read_json(ST::PathToResources + "bg_textures_config.json", Textures_pt); + std::string bg_ext = ".jpeg"; + + // ::::::::::::::::::::::::::::::::::::: + + TextureNamesToLoad.push_back(std::pair("main_menu_bkg_left.png", "main_menu_bkg_left")); + TextureNamesToLoad.push_back(std::pair("main_menu_bkg_right.png", "main_menu_bkg_right")); + TextureNamesToLoad.push_back(std::pair("select_level.png", "select_level")); + /* + TextureNamesToLoad.push_back(std::pair("shutterstock1.png", "shutterstock1")); + TextureNamesToLoad.push_back(std::pair("shutterstock2.png", "shutterstock2")); + TextureNamesToLoad.push_back(std::pair("shutterstock3.png", "shutterstock3")); + TextureNamesToLoad.push_back(std::pair("shutterstock4.png", "shutterstock4")); + TextureNamesToLoad.push_back(std::pair("shutterstock5.png", "shutterstock5")); + TextureNamesToLoad.push_back(std::pair("shutterstock6.png", "shutterstock6")); + TextureNamesToLoad.push_back(std::pair("shutterstock7.png", "shutterstock7")); + TextureNamesToLoad.push_back(std::pair("shutterstock8.png", "shutterstock8")); + TextureNamesToLoad.push_back(std::pair("shutterstock9.png", "shutterstock9")); + TextureNamesToLoad.push_back(std::pair("shutterstock10.png", "shutterstock10")); + TextureNamesToLoad.push_back(std::pair("shutterstock11.png", "shutterstock11")); + TextureNamesToLoad.push_back(std::pair("shutterstock12.png", "shutterstock12")); + */ + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock1")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_2") + bg_ext, "shutterstock2")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_11") + bg_ext, "shutterstock3")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_13") + bg_ext, "shutterstock4")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock5")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock6")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock7")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock8")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock9")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock10")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock11")); + TextureNamesToLoad.push_back(std::pair("level_background/" + Textures_pt.get("TextureList.bg_1") + bg_ext, "shutterstock12")); + + + TextureNamesToLoad.push_back(std::pair("levelshot1.png", "levelshot1")); + TextureNamesToLoad.push_back(std::pair("levelshot2.png", "levelshot2")); + TextureNamesToLoad.push_back(std::pair("levelshot3.png", "levelshot3")); + TextureNamesToLoad.push_back(std::pair("levelshot4.png", "levelshot4")); + TextureNamesToLoad.push_back(std::pair("levelshot5.png", "levelshot5")); + TextureNamesToLoad.push_back(std::pair("levelshot6.png", "levelshot6")); + TextureNamesToLoad.push_back(std::pair("levelshot7.png", "levelshot7")); + TextureNamesToLoad.push_back(std::pair("levelshot8.png", "levelshot8")); + TextureNamesToLoad.push_back(std::pair("levelshot9.png", "levelshot9")); + TextureNamesToLoad.push_back(std::pair("levelshot10.png", "levelshot10")); + TextureNamesToLoad.push_back(std::pair("levelshot11.png", "levelshot11")); + TextureNamesToLoad.push_back(std::pair("levelshot12.png", "levelshot12")); + TextureNamesToLoad.push_back(std::pair("game_end.png", "game_end")); + + TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE1 + ".png", CONST_BLOCK_TEXTURE1)); + TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE2 + ".png", CONST_BLOCK_TEXTURE2)); + TextureNamesToLoad.push_back(std::pair(CONST_BLOCK_TEXTURE3 + ".png", CONST_BLOCK_TEXTURE3)); + TextureNamesToLoad.push_back(std::pair(CONST_BONUS_GOTHROUGH_TEXTURE + ".png", CONST_BONUS_GOTHROUGH_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_BONUS_MULTIPLIER_TEXTURE + ".png", CONST_BONUS_MULTIPLIER_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_BONUS_FLOOR_TEXTURE + ".png", CONST_BONUS_FLOOR_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_BALL_TEXTURE + ".png", CONST_BALL_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_BALLGLOW_TEXTURE + ".png", CONST_BALLGLOW_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_WALL_LEFT_TEXTURE + ".png", CONST_WALL_LEFT_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_WALL_RIGHT_TEXTURE + ".png", CONST_WALL_RIGHT_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_WALL_UP_TEXTURE + ".png", CONST_WALL_UP_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_WALL_BONUS_TEXTURE + ".png", CONST_WALL_BONUS_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_REFLECTOR_TEXTURE + ".png", CONST_REFLECTOR_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_BACK_BTN_TEXTURE + ".png", CONST_BACK_BTN_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_SLIDE_UP_BTN_TEXTURE + ".png", CONST_SLIDE_UP_BTN_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_TAP_TO_CONTINUE_BTN_TEXTURE + ".png", CONST_TAP_TO_CONTINUE_BTN_TEXTURE)); + TextureNamesToLoad.push_back(std::pair(CONST_CREDITS_TEXTURE + ".png", CONST_CREDITS_TEXTURE)); + +#ifdef TARGET_IOS + ResourceManager->SoundManager.LoadMusicLooped("level1ogg.ogg"); +#else + //ResourceManager->SoundManager.LoadMusic("level1ogg.ogg"); +#endif + + ResourceManager->FontManager.AddFont("droid_sans14", "droid_sans14_font_bitmap.png", "droid_sans14_font_charmap.txt"); + ResourceManager->FontManager.PushFont("droid_sans14"); + + TryLoadSavedGame(); + +} + +void TMyApplication::TryLoadSavedGame() +{ + + std::string fileName = GetFilePathUserData("progress.txt"); + + FILE* file = fopen(fileName.c_str(), "r"); + if (file != NULL) + { + char line[100]; + char* r; + r = fgets(line, 100, file); + if (r != NULL) + { + Menu.SetMenuItemCount(toint(r)); + } + fclose(file); + } +} + +void TMyApplication::TrySaveGame() +{ + + std::string fileName = GetFilePathUserData("progress.txt"); + + std::string s = tostr(Menu.GetMenuItemCount()); + FILE* file = fopen(fileName.c_str(), "w"); + if (file != NULL) + { + fputs(s.c_str(), file); + fflush(file); + fclose(file); + } + +} + + + +void TMyApplication::InnerDraw() +{ + glDisable(GL_DEPTH_TEST); + + OnDrawSignal(); + + +} + + +void TMyApplication::InnerUpdate(size_t dt) +{ + + if (GameState == CONST_GAMESTATE_PRELOADING) + { + *SE::Console << "1CONST_GAMESTATE_PRELOADING"; + StateTimer += dt/1000.f; + if (StateTimer >= 1.f) + { + LoadResources(); + GameState = CONST_GAMESTATE_LOADING; + StateTimer = 0.f; + } + } + else if (GameState == CONST_GAMESTATE_LOADING) + { + *SE::Console << "2CONST_GAMESTATE_LOADING"; + StateTimer += dt/1000.f; + if (StateTimer >= 1.f) + { + StateTimer -= 1.f; + } + + if (TextureNamesToLoad.size() != 0) + { + ResourceManager->TexList.AddTexture(TextureNamesToLoad.begin()->first, TextureNamesToLoad.begin()->second); + TextureNamesToLoad.erase(TextureNamesToLoad.begin()); + } + else + { + GameState = CONST_GAMESTATE_MENU; + ApplySignalsToMenu(); + OnDrawSignal.disconnect(boost::bind(&TGameLoading::Draw, boost::ref(GameLoading))); + OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); + StateTimer = 0.f; + Loaded = true; + } + } + else if (GameState == CONST_GAMESTATE_LEVEL) + { + *SE::Console << "3CONST_GAMESTATE_LEVEL"; + GameLevel.Update(dt); + EffectsUpdate(dt); + } + else if (GameState == CONST_GAMESTATE_MENU) + { + //*SE::Console << "4CONST_GAMESTATE_MENU"; + Menu.Update(dt); + + } + else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_LEVEL) + { + *SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL"; + GameLevel.Update(dt); + if (GameLevel.IsLoaded()) + { + //*SE::Console << "5CONST_GAMESTATE_FROM_MENU_TO_LEVEL"; + GameState = CONST_GAMESTATE_LEVEL; + OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); + //CONNECT SLOT + DisapplySignalsToMenu(); + ApplySignalsToGame(); + } + } + else if (GameState == CONST_GAMESTATE_FROM_MENU_TO_CREDITS) + { + *SE::Console << "6CONST_GAMESTATE_FROM_MENU_TO_CREDITS"; + Menu.Update(dt); + GameCredits.Update(dt); + StateTimer -= dt; + if (StateTimer <= 0.f) + { + GameState = CONST_GAMESTATE_CREDITS; + OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); + ApplySignalsToCredits(); + StateTimer = 0.f; + } + } + else if (GameState == CONST_GAMESTATE_CREDITS) + { + //*SE::Console << "7CONST_GAMESTATE_CREDITS"; + GameCredits.Update(dt); + } + else if (GameState == CONST_GAMESTATE_FROM_CREDITS_TO_MENU) + { + Menu.Update(dt); + GameCredits.Update(dt); + StateTimer -= dt; + if (StateTimer <= 0.f) + { + GameState = CONST_GAMESTATE_MENU; + StateTimer = 0.f; + ApplySignalsToMenu(); + OnDrawSignal.disconnect(boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); + } + } +} + + +void TMyApplication::GoFromMenuToGame(int level) +{ +//#ifndef TARGET_IOS +// ResourceManager->SoundManager.PlayMusicLooped("level1ogg.ogg"); +//#endif + + GameLevel.FillWithFile(ST::PathToResources + "level"+tostr(level+1)+".txt"); + GameLevel.SetLoading("shutterstock" + tostr(level+1), "levelshot"+tostr(level+1)); + GameState = CONST_GAMESTATE_FROM_MENU_TO_LEVEL; + OnDrawSignal.connect(1, boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); + + DisapplySignalsToMenu(); + +} + +void TMyApplication::GoFromGameToMenu() +{ + //#ifndef TARGET_IOS +// ResourceManager->SoundManager.StopMusic("level1ogg.ogg"); +//#endif + TrySaveGame(); + DisapplySignalsToGame(); + ApplySignalsToMenu(); + GameState = CONST_GAMESTATE_MENU; + OnDrawSignal.disconnect(boost::bind(&TGameLevel::Draw, boost::ref(GameLevel))); +} + +void TMyApplication::GoFromMenuToCredits() +{ + GameState = CONST_GAMESTATE_FROM_MENU_TO_CREDITS; + StateTimer = CONST_CREDITS_SHOW_TIME; + GameCredits.StartAppear(); + OnDrawSignal.connect(1, boost::bind(&TGameCredits::Draw, boost::ref(GameCredits))); + DisapplySignalsToMenu(); + +} + +void TMyApplication::GoFromCreditsToMenu() +{ + + GameState = CONST_GAMESTATE_FROM_CREDITS_TO_MENU; + StateTimer = CONST_CREDITS_SHOW_TIME; + GameCredits.StartDisappear(); + OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); + + DisapplySignalsToCredits(); +} + +void TMyApplication::MarkSetGameLevelPause() +{ + OnDrawSignal.connect(0, boost::bind(&TGameMenu::Draw, boost::ref(Menu))); +} + +void TMyApplication::MarkReleaseGameLevelPause() +{ + OnDrawSignal.disconnect(boost::bind(&TGameMenu::Draw, boost::ref(Menu))); +} + + +void TMyApplication::OpenNextLevel() +{ + Menu.OpenNextLevel(); +} + +bool TMyApplication::IsLoaded() +{ + return Loaded; +} + +bool TMyApplication::IsInited() +{ + return Inited; +} + +void TMyApplication::SetGameLevelScreenScale() +{ + if ((((float)Renderer->GetScreenWidth())/((float)Renderer->GetScreenHeight())) >= levelScreenRatio) + { + levelScreenHeight = (float)Renderer->GetScreenHeight(); + levelScreenWidth = levelScreenHeight * levelScreenRatio; + } else + { + levelScreenWidth = (float)Renderer->GetScreenWidth(); + levelScreenHeight = levelScreenWidth / levelScreenRatio; + } +} + +float TMyApplication::GetGameLevelScreenWidth() +{ + return levelScreenWidth; +} + +float TMyApplication::GetGameLevelScreenHeight() +{ + return levelScreenHeight; +} + +void TMyApplication::InnerOnMouseDown(TMouseState& mouseState) { + /* + if (mouseState.LeftButtonPressed) { + if ((float)mouseState.X >= (Renderer->GetScreenWidth())*0.25f && (float)mouseState.X <= (Renderer->GetScreenWidth())*0.75f && (float)mouseState.Y >= (Renderer->GetScreenHeight())*0.25f && (float)mouseState.Y <= (Renderer->GetScreenHeight())*0.75f) { + // some tmp code + Application->GoFromMenuToGame(1); + } + } + */ + OnTapDownSignal(Vector2f(mouseState.X, ((Renderer->GetScreenHeight()) - mouseState.Y))); // Temp mouse down action for WIN32 +} + +void TMyApplication::InnerOnMouseMove(TMouseState& mouseState) { + +} + +void TMyApplication::EffectsInit() { + + boost::property_tree::ptree JSONsource; + boost::property_tree::ptree JSONconfig; + std::string effectJSON; + boost::property_tree::json_parser::read_json(ST::PathToResources + "config.json", JSONconfig); + + // LEFT + effectJSON = JSONconfig.get("lefteffect"); + boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); + lsparkler.parse(JSONsource); // parse JSON + lsparkler.load(); // load textures + // RIGHT + effectJSON = JSONconfig.get("righteffect"); + boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); + rsparkler.parse(JSONsource); + rsparkler.load(); + // TOP + effectJSON = JSONconfig.get("topeffect"); + boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); + tsparkler.parse(JSONsource); + tsparkler.load(); + // BOTTOM + effectJSON = JSONconfig.get("boteffect"); + boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); + bsparkler.parse(JSONsource); + bsparkler.load(); + // Level finish + effectJSON = JSONconfig.get("lvlFinish"); + boost::property_tree::json_parser::read_json(ST::PathToResources + effectJSON, JSONsource); + lvlFirework.parse(JSONsource); + lvlFirework.load(); + + float width = Renderer->GetScreenWidth(); + float height = Renderer->GetScreenHeight(); + + lsparkler.setCoords({ width / 2, height / 2, 0 }); + rsparkler.setCoords({ width / 2, height / 2, 0 }); + tsparkler.setCoords({ width / 2, height / 2, 0 }); + bsparkler.setCoords({ width / 2, height / 2, 0 }); + lvlFirework.setCoords({ width / 2, 0, 0 }); +} + +void TMyApplication::EffectsUpdate(size_t dt) { + lsparkler.update(dt / 1000.f); + rsparkler.update(dt / 1000.f); + tsparkler.update(dt / 1000.f); + bsparkler.update(dt / 1000.f); + lvlFirework.update(dt / 1000.f); +} +void TMyApplication::EffectsDraw() { + lsparkler.draw(); + rsparkler.draw(); + tsparkler.draw(); + bsparkler.draw(); + lvlFirework.draw(); +} + +void TMyApplication::hitSpark(std::string direct,Vector2f Pos) { + if (direct == "left") { + lsparkler.setCoords({ Pos(0),Pos(1),0 }); + lsparkler.stopSpawn(); + lsparkler.startSpawn(); + + } + if (direct == "right") { + rsparkler.setCoords({ Pos(0),Pos(1),0 }); + rsparkler.stopSpawn(); + rsparkler.startSpawn(); + } + if (direct == "up") { + tsparkler.setCoords({ Pos(0),Pos(1),0 }); + tsparkler.stopSpawn(); + tsparkler.startSpawn(); + } + if (direct == "down") { + bsparkler.setCoords({ Pos(0),Pos(1),0 }); + bsparkler.stopSpawn(); + bsparkler.startSpawn(); + } +} + +void TMyApplication::fireworkEffect() { + lvlFirework.stopSpawn(); + lvlFirework.startSpawn(); +} + +void TMyApplication::SetButtonsAction () { + auto backBtn = ResourceManager->newGuiManager.findWidgetByName("backButton"); + if (backBtn) { + backBtn->onMouseDownSignal.connect([this, backBtn](Vector2f pos, int touchNumber) { + this->GameLevel.SetPause(); + this->GameLevel.PrevLevelStateIsStandby = true; + }); + } } \ No newline at end of file diff --git a/game/main_code.h b/game/main_code.h index f0aa39f..f5fd63a 100644 --- a/game/main_code.h +++ b/game/main_code.h @@ -28,6 +28,7 @@ #include "menucode.h" #include "creditscode.h" #include "loadingcode.h" +#include "galaxy_menu.h" using namespace SE; diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj index d6eba64..6c7d123 100755 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj +++ b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj @@ -166,23 +166,25 @@ + + + - - + + + - - diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters index 5a33d79..b49a917 100755 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters +++ b/windows/DoubleHitBalls-win/DoubleHitBalls-win/DoubleHitBalls-win.vcxproj.filters @@ -33,10 +33,13 @@ Файлы исходного кода - + Файлы исходного кода - + + Файлы исходного кода + + Файлы исходного кода @@ -62,10 +65,13 @@ Заголовочные файлы - + Заголовочные файлы - + + Заголовочные файлы + + Заголовочные файлы diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy.h b/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy.h deleted file mode 100755 index 930f45d..0000000 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef GALAXY_H -#define GALAXY_H - -#include "galaxy_objects.h" - -#include "include/Engine.h" -#include - - -class GalaxyMenu { -public: - - // ======== All objects ========= - std::vector Stars; - // ======== All objects ========= - - - // ======== Main Methods ======== - void InitGalaxy(); - void DrawGalaxy(); - void UpdateGalaxy(); - // ======== Main Methods ======== - - void InteractWithGalaxy(); // Prototype for mouse/tap events - - - // ::::::::::: - float GetGalaxyPosition(); - // ::::::::::: - -private: - - // Params - //Vector2f selfPosition; - -}; - -#endif diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy_objects.cpp b/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy_objects.cpp deleted file mode 100755 index e69de29..0000000 diff --git a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy_objects.h b/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy_objects.h deleted file mode 100755 index c5c0c59..0000000 --- a/windows/DoubleHitBalls-win/DoubleHitBalls-win/galaxy_objects.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef GALAXY_OBJECTS_H -#define GALAXY_OBJECTS_H - -class StarObject { -public: - - - -private: - - - -}; - - -#endif \ No newline at end of file