我需要这样的东西,但我不知道该怎么做。
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;
答案 0 :(得分:1)
没有<=
运算符来比较sf::Vector2<T>
- 数学上没有意义。
您要做的是比较其组件(x和y)。
如果您只想比较y组件,请检查您的对象是否位于&#34; bottom&#34; (不管是什么),你可以沿着这些方向做点什么:
if (sprite.getPosition().y <= BOTTOM_Y) {
...
请注意,也没有<<
运算符。如果需要,您可以定义自己的,但这不是SFML的工作的一部分,以便文本友好并提供此类操作。