Reputation: 41
I have a class named 'Player' where I handle movements, level ups etc in a game I am attempting to create. In the main loop in the main source file I have the keyboard events (Left/Right.) I want the movements to be able to know when your character is venturing past where it's allowed. To answer the problem I placed two if statements.
I am only having issues with this if statement:
else if (sf::Keyboard::IsKeyPressed(sf::Keyboard::Right)) {
if (Player.getX() > 1279) {
Player.move(640,0);
}
Player.move(0.1,0);
}
No compiling issues. The only issue is, unlike the other if statement, this one doesn't return the sprite to the wanted position. If I lower the if statement to something like 1000, the sprite disappears from the screen.
Any help appreciated.
Upvotes: 0
Views: 266
Reputation: 3530
Player.move(640,0);
Your moving your player 640 pixel on the X-axis. This means that when the player gets to x > 1279
, i.e. at the right end of your world, you move the player further to the right. So it disappears.
You might want to use setPosition
instead of move
here, or simply don't move the player, etc...
Upvotes: 2