Fork Copy #pragma once #include #include #include #include #include #include #include #include #include "CollisionProcessing.h" #include "GUI.h" #include "Leaderboard.h" #include "Menu.h" using namespace std; class Loop { private: // Window variables sf::RenderWindow* window; // is variables bool isEnd, isMenu, isPlaying, isMultiplayer, isPaused, isGameOverScreen; // Clock variables sf::Clock dt_clock; // Object variables Background* background; PlayerCar* car, *car2; CollisionProcessing* collisionProcessing, *collisionProcessing2; GUI* gui; Leaderboard* leaderboard; Menu* menu; AssetManager manager; string test_string; sf::Font font; sf::Text text_test; sf::Text pause_text; float dt; float background_moving_speed; int currentLocation; string locationNames[4]; float distance, speedMultiplier, scoreMultiplier, score, speed; // Background color sf::Color color_background; sf::Music backgroundMusic; sf::Music ingameMusic; sf::Texture game_over_texture; sf::Sprite game_over_sprite; // FIXED: Changed from sf::Image to sf::Sprite // Initialization functions void initWindow(); void initVariables(); void initAssets(); void initNewGame(); public: // Constructors / Destructors Loop(); virtual ~Loop(); // Run functions void run(); // Update functions void update(); void updateMenu(); void updateGame(); void updateLeaderboard(); void updateGameOver(); void updatePollEvents(); void initNewGameMultiplayer(); // Note: This is declared but not implemented in the provided code // Rendering functions void render(); };