Example #1
0
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();

}