我目前正在将SFML与c ++一起使用,并且在将我的精灵保留在页面上时遇到一个小问题。下面是代码,如果有人有任何想法可以帮助解决我的问题,那就太好了!
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down) && shape1.getPosition().y < screenLength)
{
if (shape1.getGlobalBounds().intersects( line1.getGlobalBounds()) || shape1.getGlobalBounds().intersects(line.getGlobalBounds()) || shape1.getGlobalBounds().intersects(line2.getGlobalBounds()))
{
shape1.move(0.0f, -.2f);
std::cout << "Collision";
}
当我一直按下向下按钮时,它使我离开生成的窗口的底部,而不是像根据if语句那样跳过它。
最佳答案
我发现问题并解决了...所以当我拿到
shape1.globalBounds().x
它返回精灵顶部的X。所以我必须把它放在这行,以使其正常工作:
float test = shape1.getGlobalBounds().top + shape1.getGlobalBounds().height;
现在它停止在screenLength上,并且如果调整了屏幕大小等,它将继续工作。