2024-02-22 13:39:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* @brief Класс GameEngine является основой для всей архитектуры игры.
|
|
|
|
|
*/
|
2024-02-14 17:10:20 +03:00
|
|
|
|
class GameEngine {
|
|
|
|
|
public:
|
2024-02-22 13:39:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* @brief Инициализирует игровой движок и все его подсистемы.
|
|
|
|
|
*/
|
2024-02-14 17:10:20 +03:00
|
|
|
|
void initialize();
|
|
|
|
|
|
2024-02-22 13:39:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* @brief Запускает основной игровой цикл.
|
|
|
|
|
*/
|
2024-02-14 17:10:20 +03:00
|
|
|
|
void run();
|
|
|
|
|
|
2024-02-22 13:39:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* @brief Останавливает игру и освобождает ресурсы.
|
|
|
|
|
*/
|
2024-02-14 17:10:20 +03:00
|
|
|
|
void shutdown();
|
|
|
|
|
|
|
|
|
|
private:
|
2024-02-22 13:39:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* @brief Обновляет все подсистемы (физика, анимация, AI и т.д.).
|
|
|
|
|
* @param deltaTime Время, прошедшее с предыдущего обновления, в секундах.
|
|
|
|
|
*/
|
2024-02-14 17:10:20 +03:00
|
|
|
|
void update(float deltaTime);
|
|
|
|
|
|
2024-02-22 13:39:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* @brief Рендерит текущее состояние игры.
|
|
|
|
|
*/
|
2024-02-14 17:10:20 +03:00
|
|
|
|
void render();
|
|
|
|
|
};
|