#include #include #include #include "game.h" #include "../config.h" Game::Game(std::shared_ptr window) : window(std::move(window)), gameObjects() { } void Game::run() { sf::Clock clock; sf::Time TimeSinceLastUpdate = sf::seconds(0); while (window->isOpen()) { processEvents(); TimeSinceLastUpdate += clock.restart(); while (TimeSinceLastUpdate >= FRAME_TIME) { TimeSinceLastUpdate -= FRAME_TIME; update(); processEvents(); } drawFrame(); } } void Game::exit() { window->close(); } void Game::drawFrame() { window->clear(sf::Color::Black); for (auto &gameObject: gameObjects) { gameObject->draw(window.get()); } window->display(); } Game::~Game() { for (auto &gameObject: gameObjects) { delete gameObject; } } void Game::addGameObject(GameObject *gameObject) { gameObjects.push_back(gameObject); } void Game::update() { for (auto &gameObject: gameObjects) { gameObject->update(); } } void Game::processEvents() { sf::Event event; while (window->pollEvent(event)) { switch (event.type) { case sf::Event::KeyPressed: break; case sf::Event::KeyReleased: break; case sf::Event::Closed: exit(); break; default: break; } } }