Siema.
Kod:

#include <iostream>
#include <fstream>
#include <conio.h>
#include <vector>
#include <sstream>
#include <SFML\Window.hpp>
#include <SFML\Graphics.hpp>

using namespace std;
using namespace sf;

int main()
{
	RenderWindow oknoAplikacji(VideoMode(800, 600, 32), "Program Testowy");
	while (oknoAplikacji.isOpen())
	{
		Event zdarzenie;
		while (oknoAplikacji.pollEvent(zdarzenie))
		{
			if (zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::F1 || zdarzenie.type == Event::Closed)
			{
				oknoAplikacji.close(); //np. zamknięcie aplikacji
			}
		}
		Texture grass;
		grass.loadFromFile("textures/obj/grass.png");
		Sprite grass2;
		grass2.setTexture(grass);
		grass2.setPosition(300, 300);

		if (Keyboard::isKeyPressed(Keyboard::Up)) grass2.move(0, -10);
		if (Keyboard::isKeyPressed(Keyboard::Down)) grass2.move(0, 10);
		if (Keyboard::isKeyPressed(Keyboard::Left)) grass2.move(-10, 0);
		if (Keyboard::isKeyPressed(Keyboard::Right)) grass2.move(10, 0);
		
		oknoAplikacji.clear();
		oknoAplikacji.draw(grass2);
		
		oknoAplikacji.display();
	}

//Koniec
	return 0;
}

Rusza się i wraca do tego samego miejsca jak puszczę strzałkę. Muszę pobierać aktualną pozycje i według niej poruszać?

Rozwiązanie: Włączenie synchronizacji pionowej i limitu fps za pomocą:

oknoAplikacji.setVerticalSyncEnabled(1); // Setting max framerate to 60 (Facultative)
oknoAplikacji.setFramerateLimit(60); // Setting max framerate to 60 (Facultative)