Мне нужно получить размер спрайта, чтобы сделать некоторые расчеты, но я не могу найти способ сделать это < /p>
Код: Выделить всё
class Arrow{
private:
sf::Texture texture;
public:
sf::Sprite sprite;
Arrow(): texture("..\\assets\\sprites\\arrow.png"), sprite(texture){
sprite.setPosition({300, 300});
sprite.setScale({0.25, 0.25});
}
void setPosition(sf::Vector2f tailVect, double distance, double angle){
sf::Vector2f spritePos = sprite.getPosition();
sprite.setRotation(sf::radians(angle - M_PI));
float newX = tailVect.x + (float)(distance * cos(angle) + cos(angle) / sprite.getGlobalBounds().width);
float newY = tailVect.y + (float)(distance * sin(angle) + sin(angle) / sprite.getGlobalBounds().height);
sprite.setPosition({newX, newY});
}
};
< /code>
Проблемы - это две строки кода < /p>
float newX = tailVect.x + (float)(distance * cos(angle) + cos(angle) / sprite.getGlobalBounds().width);
float newY = tailVect.y + (float)(distance * sin(angle) + sin(angle) / sprite.getGlobalBounds().height);
< /code>
Я попытался искать документацию и попытался изменить строки кода, чтобы использовать < /p>
sprite.getGlobalBounds().size().x
Подробнее здесь: https://stackoverflow.com/questions/796 ... ht-in-sfml