我目前正在尝试用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如何几乎以相反的方式设置其坐标有关,但是我不确定。任何帮助表示赞赏!
答案 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);
}