if 语句中的 SFML getPosition

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;

没有 <= 运算符可以比较 sf::Vector2<T> -- 从数学上讲这将毫无意义。

您要做的是比较其分量(x 和 y)。

如果您只想比较 y 分量以检查您的对象是否低于 "bottom"(无论那是什么),您可以按照这些行做一些事情:

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

请注意,也没有 << 运算符。如果需要,您可以定义自己的,但这不是 SFML 的工作的一部分,即文本友好并提供此类操作。