I tried both using SetPosition and Move but both had the same result, when I can move the sprite down and right, that is I can only add to the position not subtract.
The relevant code would be:
case sf::Event::KeyPressed:
switch(Event.Key.Code)
{
case(sf::Keyboard::Up):
py-=2;
case(sf::Keyboard::Down):
py+=2;
case(sf::Keyboard::Left):
px-=2;
case(sf::Keyboard::Right):
px+=2;
}
...
pyr.SetPosition(px, py);