Положение мыши с прокруткой экрана в SFML

Я пытаюсь создать размещение блока с привязкой к сетке. Все работает, и в моей голове это должно обновлять положение мыши относительно окна каждого кадра, верно?

sf::Vector2i position = sf::Mouse::getPosition(window.mywindow);

//get position
int xSnap = (position.x / gridWidth) * gridWidth;
int ySnap = (position.y / gridHeight) * gridHeight;

Но у меня также есть прокрутка экрана с помощью

if (player.playerSprite.getPosition().x + 16 > screenDimensions.x / 2)
        position.x = player.playerSprite.getPosition().x + 16;
    else
        position.x = screenDimensions.x / 2;

    //Y
    if (player.playerSprite.getPosition().y + 16 > screenDimensions.y / 2)
        position.y = player.playerSprite.getPosition().y + 16;
    else
        position.y = screenDimensions.y / 2;

Когда экран прокручивается в любую сторону от своего исходного положения, он не обновляет положение мыши, например, например, допустим, что размер окна составляет 800x600, в пределах этого окна 800x600 положение работает нормально, но, допустим, мой спрайт перемещается на 200px вправо (начинает прокручиваться). когда спрайт достигает середины экрана) за исходной позицией, объект, перемещаемый с использованием этого кода, появляется в 200 пикселях слева от мыши. То же самое происходит с осью Y.

Я надеюсь, что это имеет смысл

Ответы на вопрос(1)

Ваш ответ на вопрос