2015-06-27 5 views
0

Мне нужно что-то подобное, но я понятия не имею, как это сделать.SFML getPosition in if statement

sprite.move(0, 0.4 * time.asMiliseconds()); 
if (sprite.getPosition <= *bottom of the screen*) 
{ 
    sprite.setPosition(0,0); 
} 

спрайт движется вниз, но когда он идет на экране, оно должно появляться обратно наверх. Я думал, что простая инструкция if выполнит эту работу, но это не так. Я не знаю, из чего вывод из .getPosition.

Написание его на консоль не работает, поэтому я понятия не имею, что делать.

std::cout << sprite.getPosition() << std::endl; 

ответ

1

Там нет <= оператора сравнивать sf::Vector2<T> - математически это было бы бессмысленно.

Что вы хотите сделать, это сравнить его компоненты (x и y).

Если вы просто хотите, чтобы сравнить у компонента, чтобы проверить, если ваш объект находится ниже «дна» (что бы это ни), вы можете сделать что-то вдоль этих линий:

if (sprite.getPosition().y <= BOTTOM_Y) { 
    ... 

Обратите внимание, что не существует << оператора тоже. Вы можете определить свои собственные, если хотите, но это не является частью работы SFML, чтобы быть дружественным к текстам и обеспечивать такую ​​работу.