SFML community forums

Help => Graphics => Topic started by: Theom on October 10, 2011, 10:52:46 pm

Title: Sprite does not move left or up
Post by: Theom on October 10, 2011, 10:52:46 pm
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:
Code: [Select]

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);
Title: Sprite does not move left or up
Post by: Laurent on October 10, 2011, 10:57:23 pm
You must add a "break" instruction at the end of each "case", otherwise the code goes through all of them.

Code: [Select]
               switch(Event.Key.Code)
                {
                case(sf::Keyboard::Up):
                    py-=2;
                    break;
                case(sf::Keyboard::Down):
                    py+=2;
                    break;
                case(sf::Keyboard::Left):
                    px-=2;
                    break;
                case(sf::Keyboard::Right):
                    px+=2;
                    break;
                }
Title: Sprite does not move left or up
Post by: Theom on October 10, 2011, 11:12:20 pm
It worked. Thank you very much.