나는 SFML로 일부 텍스트를 가운데 정렬하려고합니다. 아래 그림에서 볼 수 있듯이 실제로 작동하지 않습니다. SFML 그리기 중심 맞춤 텍스트
내 수학에 문제가있을 수 있습니까? 에서
void TextRenderer::renderCentered(sf::RenderWindow& window, std::string string, sf::Vector2f position, int size, sf::Color color) {
sf::Text text;
text.setFont(TextRenderer::kavoon);
text.setString(string);
float width = text.getLocalBounds().width;
text.setPosition(position.x - width/2, position.y);
text.setCharacterSize(size);
text.setColor(color);
window.draw(text);
}
렌더링 방법
TextRenderer::renderCentered(*window, pickuptext.str(), sf::Vector2f(player->sprite.getPosition().x, player->sprite.getPosition().y - 48), 28, sf::Color(255, 145, 61));
TextRenderer::renderCentered(*window, pickuptextdesc.str(), sf::Vector2f(player->sprite.getPosition().x, player->sprite.getPosition().y - 16), 18, sf::Color(255, 145, 61));
'position.x'는 경계 상자의 가운데 또는 왼쪽 위치입니까? –
잘 모르겠지만, 부적절한 글립 크기를 가진 글꼴 중 일부 글꼴이 SFML의 테두리 기능과 잘 어울리지 않는다는 것을 알았습니다. 지금은 하드 코딩 된 조정이이를 처리 할 수있는 유일한 방법 인 것 같습니다. SFML 2.2의 변경 내역에는 각'sf :: Font'에 대한'Info' 구조체가 포함되어 있습니다.이 구조체는 나중에 도움이 될 수 있습니다 만, 현재는 글꼴의 계열에 대해서만 설명합니다. – Conduit