Проблема спрайта позиционирования C ++ / SFML

У меня есть класс с именем «Player», в котором я обрабатываю движения, повышение уровня и т. Д. В игре, которую пытаюсь создать. В главном цикле в главном исходном файле у меня есть события клавиатуры (влево / вправо). Я хочу, чтобы движения могли знать, когда ваш персонаж уходит дальше, где это разрешено. Чтобы ответить на проблему, я поместил два оператора if.

У меня только проблемы с этим если заявление:

else if (sf::Keyboard::IsKeyPressed(sf::Keyboard::Right)) {
if (Player.getX() > 1279) {
Player.move(640,0);
}
Player.move(0.1,0);
}

Нет проблем с компиляцией. Единственная проблема, в отличие от другого оператора if, не возвращает спрайт в требуемую позицию. Если я уменьшу выражение if до 1000, спрайт исчезнет с экрана.

Любая помощь приветствуется.

0

Решение

Player.move(640,0);

Ваше перемещение вашего игрока 640 пикселей по оси X. Это означает, что когда игрок добирается до x > 1279то есть в правом конце вашего мира вы перемещаете игрока дальше вправо. Так оно и исчезает.

Вы можете использовать setPosition вместо move здесь, или просто не двигайте плеер и т.д …

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]