void Game::update() { const sf::Vector2i mouse(sf::Mouse::getPosition(m_window)); m_pointer.setPosition(mouse.x - (m_pointer.getSize().x / 2), mouse.y - (m_pointer.getSize().y / 2)); if (not sf::FloatRect(0, 0, m_window.getSize().x, m_window.getSize().y).intersects(sf::FloatRect(m_pointer.getPosition(), m_pointer.getSize()))) loadLevel(); { int count = 0; for (int i = 0; i < m_pointer.getPointCount(); ++i) count += sf::FloatRect(m_end.getPosition(), m_end.getSize()).contains (m_pointer.getPosition() + m_pointer.getPoint(i)); if (count == m_pointer.getPointCount()) ++m_level, loadLevel(); } for (const auto& wall: m_walls) for (int i = 0; i < m_pointer.getPointCount(); ++i) if (sf::FloatRect(wall.getPosition(), wall.getSize()).contains (m_pointer.getPosition() + m_pointer.getPoint(i))) loadLevel(); }