Mausposition mit Bildlauf in SFML

Ich versuche, eine Blockplatzierung mit Fang am Raster zu erstellen. Alles funktioniert, und in meinem Kopf sollte dies die Position der Maus relativ zum Fenster in jedem Frame aktualisieren, oder?

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

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

Aber ich habe auch Bildschirm scrollen mit

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;

Wenn der Bildschirm von seiner ursprünglichen Position aus in eine beliebige Richtung gescrollt wird, wird die Mausposition nicht aktualisiert. Nehmen wir beispielsweise an, die Fenstergröße beträgt 800x600. In diesem 800x600-Fenster funktioniert die Position einwandfrei, aber mein Sprite bewegt sich 200px nach rechts (es beginnt mit dem Scrollen) Wenn das Sprite die Mitte des Bildschirms nach der ursprünglichen Position erreicht, erscheint das Objekt, das mit diesem Code platziert wird, 200px links von der Maus. Gleiches passiert mit der y-Achse.

Ich hoffe das macht Sinn

Antworten auf die Frage(1)

Ihre Antwort auf die Frage