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 的工作的一部分,即文本友好并提供此类操作。
我需要这样的东西,但我不知道该怎么做。
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 的工作的一部分,即文本友好并提供此类操作。