【发布时间】:2021-12-31 21:11:02
【问题描述】:
我想使用 sprite.rotate() 和 sprite.setrotation() 函数,但 sfml 考虑了精灵的右上角。如何将此点设置为精灵中心?
【问题讨论】:
-
你有SFML manual吗?
-
有一个名为
RectangleShape的类可以做到这一点。搜索并了解如何使用它。
我想使用 sprite.rotate() 和 sprite.setrotation() 函数,但 sfml 考虑了精灵的右上角。如何将此点设置为精灵中心?
【问题讨论】:
RectangleShape 的类可以做到这一点。搜索并了解如何使用它。
如果你想设置旋转中心,你必须使用sprite.setOrigin()函数来设置位置和旋转的中心。
例如:
sf::Texture texture;
if (!texture.loadFromFile("texture.png"))
exit(-1);
sf::Sprite sprite;
sprite.setOrigin((sf::Vector2f)texture.getSize() / 2.f);
或者,如果您要更改精灵的纹理矩形:
sprite.setOrigin(sf::Vector2f(sprite.getLocalBounds().width, sprite.getLocalBounds().height) / 2.f);
【讨论】: