#include "IsoEngine.h" #include "components.h" #include #define ENABLE_LOGGING enum class MenuState { MAIN_MENU, OPTIONS, QUIT }; int main() { int screenWidth = 800; int screenHeight = 600; IsoEngine engine(screenWidth, screenHeight, nullptr); engine.Initialize(); SceneManager& sceneManager = engine.GetSceneManager(); entt::entity mainMenuScene = sceneManager.CreateScene(); auto& registry = engine.GetRegistry(); // Button dimensions float buttonWidth = 200.0f; float buttonHeight = 50.0f; float spacing = 20.0f; // Vertical spacing between buttons // Center X position float centerX = screenWidth / 2 - buttonWidth / 2; // Y positions for each button float singlePlayerY = screenHeight / 2 - (buttonHeight + spacing); float quitButtonY = screenHeight / 2 + (buttonHeight + spacing); // Create a UI button for "Single Player" entt::entity singlePlayerButton = registry.create(); registry.emplace(singlePlayerButton, centerX, singlePlayerY, 1.0f, 1.0f, 0.0f); // Centered horizontally registry.emplace(singlePlayerButton, "Single Player", buttonWidth, buttonHeight, [&]() { std::cout << "Single Player button clicked!" << std::endl; }); registry.emplace(singlePlayerButton, 1); // Main menu on layer 1 // Create a "Quit" button entt::entity quitButton = registry.create(); registry.emplace(quitButton, centerX, quitButtonY, 1.0f, 1.0f, 0.0f); // Centered horizontally registry.emplace(quitButton, "Quit", buttonWidth, buttonHeight, [&]() { engine.Shutdown(); }); registry.emplace(quitButton, 1); // Also on layer 1 // Create an "F3" debug overlay on a higher layer entt::entity debugOverlay = registry.create(); registry.emplace(debugOverlay, 10.0f, 10.0f, 1.0f, 1.0f, 0.0f); // Placed at top-left corner registry.emplace(debugOverlay, "FPS: 60\nPosition: (100, 200)", 300.0f, 100.0f, nullptr); registry.emplace(debugOverlay, 2); // Debug overlay on layer 2 // Set active scene to the main menu sceneManager.SetActiveScene(mainMenuScene); // Run the engine loop engine.Run(); engine.Shutdown(); return 0; } // entt::entity gameScene = sceneManager.CreateScene(); // sceneManager.SetActiveScene(gameScene); // // entt::entity player = engine.GetRegistry().create(); // engine.GetRegistry().emplace(player, 400.0f, 300.0f, 1.0f, 1.0f, 0.0f); // // auto& inputComponent = engine.GetRegistry().emplace(player); // // inputComponent.BindKey(InputAction::MOVE_UP, KEY_W); // inputComponent.BindKey(InputAction::MOVE_DOWN, KEY_S); // inputComponent.BindKey(InputAction::MOVE_LEFT, KEY_A); // inputComponent.BindKey(InputAction::MOVE_RIGHT, KEY_D); // // inputComponent.SetActionCallback(InputAction::MOVE_UP, [&]() { // auto& transform = engine.GetRegistry().get(player); // transform.y -= 5.0f; // }); // inputComponent.SetActionCallback(InputAction::MOVE_DOWN, [&]() { // auto& transform = engine.GetRegistry().get(player); // transform.y += 5.0f; // }); // inputComponent.SetActionCallback(InputAction::MOVE_LEFT, [&]() { // auto& transform = engine.GetRegistry().get(player); // transform.x -= 5.0f; // }); // inputComponent.SetActionCallback(InputAction::MOVE_RIGHT, [&]() { // auto& transform = engine.GetRegistry().get(player); // transform.x += 5.0f; // });