#ifndef RENDERER_H #define RENDERER_H #include #include #include #include #include #include class Level; class Cell; class Hero; /// Represents functionality to draw game level onto window class Renderer { private: float cell_width, cell_height, cell_deviation; unsigned int window_size; // Reset for each iteration of window pulling float init_painter_x, init_painter_y; float painter_x, painter_y; float vertical_shift, horizontal_shift; sf::Text text_charges; sf::Font font; sf::RectangleShape brush_background; sf::ConvexShape brush_cell; sf::ConvexShape brush_wall; bool drawCell(const std::unique_ptr &cell, sf::RenderWindow &main_window); public: explicit Renderer(); bool render(const std::unique_ptr &level, const std::unique_ptr &hero, sf::RenderWindow &main_window); unsigned int windowSize() const; }; #endif // RENDERER_H