if语句中的SFML getPosition

时间:2015-06-27 12:37:15

标签: c++ sfml

我需要这样的东西,但我不知道该怎么做。

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 个答案:

答案 0 :(得分:1)

没有<=运算符来比较sf::Vector2<T> - 数学上没有意义。

您要做的是比较其组件(x和y)。

如果您只想比较y组件,请检查您的对象是否位于&#34; bottom&#34; (不管是什么),你可以沿着这些方向做点什么:

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

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