在SFML中,如何使用变换在某个点周围旋转形状?我知道如何使用cos和sin,但想了解如何使用转换。
我认为我的问题是我没有获得sfml界面。这是一个例子:
// Draw circle at center
sf::CircleShape c;
c.setFillColor(sf::Color::Red);
c.setPosition(width / 2, height / 2);
c.setRadius(50);
c.setOrigin({50, 50});
现在,我如何在帧刷新循环内围绕屏幕中心移动和旋转圆圈?
答案 0 :(得分:1)
原来有旋转功能,它取一个中心点。
sf::CircleShape c;
c.setFillColor(sf::Color::Red);
c.setPosition(width / 2.f, height / 2.f - 100);
c.setRadius(50);
c.setOrigin({50, 50});
float angle = 1.0;
sf::Transform t;
while(true)
{
window.clear(sf::Color::Black);
t.rotate(angle, { width/2.f, height / 2.f });
window.draw(c, t);
window.display();
}