C ++ sfml如何从中心旋转字符

Posted

技术标签:

【中文标题】C ++ sfml如何从中心旋转字符【英文标题】:C++ sfml how to rotate a character from its center 【发布时间】:2021-12-31 21:11:02 【问题描述】:

我想使用 sprite.rotate() 和 sprite.setrotation() 函数,但 sfml 考虑了精灵的右上角。如何将此点设置为精灵中心?

【问题讨论】:

你有SFML manual吗? 有一个名为RectangleShape 的类可以做到这一点。搜索并了解如何使用它。 【参考方案1】:

如果你想设置旋转中心,你必须使用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);

【讨论】:

以上是关于C ++ sfml如何从中心旋转字符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上修复 VS 2019 中的 SFML 错误?

如何按中心旋转立方体

如何绘制围绕中心坐标相对于设备旋转的真实世界坐标?

加工中心FANUC系统的第四轴如何使用?

画布从底部中心图像角度旋转?

如何相对于其中心点旋转或缩放(变换)SVG 路径?