#pragma once #include #include #include #include #include #include struct Ball { Ball(sf::Vector2f, sf::Vector2f); sf::Vector2f pos; sf::Vector2f previousPos{}; sf::Vector2f velocity; Color color{sf::Color::Red}; bool alive{true}; }; struct Brick { Brick(sf::Vector2f); sf::Vector2f pos; Color color{sf::Color::White}; bool alive{true}; }; struct Player { Player(); sf::Vector2f pos; sf::Vector2f previousPos{}; Color color{sf::Color::White}; float score{}; int lives{3}; bool left{false}; bool right{false}; }; class Game { public: Game(); void run(); private: void imgui(); void render(); void input(); void collision(); void movement(); void updateEntities(); void checkEndGame(); private: sf::Clock clock; sf::RenderWindow window; Player player; std::vector bricks; std::vector specialBricks; std::vector balls; std::vector ballsToAdd; sf::CircleShape tempCircle; sf::RectangleShape tempRect; };