在RectangleShape的中心对齐文本

时间:2019-04-11 20:53:20

标签: c++ sfml text-alignment

我目前正在尝试用SFML / C ++编写按钮类,但是在对齐按钮中间的文本时遇到了麻烦。

我一直在使用标准的对齐方式(按钮x位置/ 2)-(文本宽度/ 2)和(按钮y位置/ 2)-(文本高度/ 2)

void setPosition(sf::Vector2f point) {
        button.setPosition(point);
        float xPos = (point.x / 2) - (text.getLocalBounds().width / 2);
        float yPos = (point.y / 2) - (text.getLocalBounds().height / 2);
        text.setPosition(xPos, yPos);
    }

此代码的结果是文本向上和向左射击,并且绝对不在中心。我确定这与SFML如何几乎以相反的方式设置其坐标有关,但是我不确定。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

这个公式似乎对我有用:

void setPosition(sf::Vector2f point) {
        button.setPosition(point);
        float xPos = (point.x + btnWidth / 2) - (text.getLocalBounds().width / 2);
        float yPos = (point.y + btnHeight / 2) - (text.getLocalBounds().height / 2);
        text.setPosition(xPos, yPos);
    }