#include "world_view.h" WorldView::WorldView() : view(nullptr) { } WorldView::~WorldView() { delete view; } void WorldView::draw(sf::RenderWindow *window) const { } void WorldView::update(Game *game) { if (view == nullptr) { initializeView(game); } // Update size auto windowSize = game->window->getSize(); sf::Vector2f viewSize = sf::Vector2f(windowSize.x, windowSize.y); view->setSize(viewSize); // Update position auto moveDirection = InputMapper::getInputDirection(); if (moveDirection != InputDirection::NONE) { float stepSize = 100.0f * FRAME_TIME.asSeconds(); auto delta = stepSize * Direction::getVector(moveDirection); this->view->move(delta); } // TODO: Only update if necessary game->window->setView(*this->view); } void WorldView::initializeView(Game *game) { auto center = game->window->getView().getCenter(); auto size = game->window->getView().getSize(); view = new sf::View(center, size); }