我是SFML的新手,我正在尝试创建一个加载栏,可以增加和减少加载值。最初,该值从0开始,增加到100,并且在无限地执行相同操作时再次减小到0。
我正在尝试使用加载图像的纹理来执行此操作,如下所示。
图像为410 x 130,我计划在每个时间步长显示12.5%的图像,并在显示整个图像时切割12.5%的图像。我正在做这样的事情:
sf::RectangleShape powerBar;
sf::Texture texture;
if (!texture.loadFromFile("Power Bar.png"))
{
std::cout<<"Unable to load texture";
}
powerBar.setPosition(powerBarPos);
powerBar.setTexture(&texture);
powerBar.setTextureRect(sf::IntRect(0, 0, 41, 13));
但是,由于显示整个图像,或者图像的一部分显示的比例错误,我无法得到我的意图。
我是否知道有什么方法可以解决我的意图?感谢。
答案 0 :(得分:-1)
也许你可以试试这个:
sf::Texture tex;
sf::Image image;
image.loadFromFile("Power Bar.png");
if (!tex.loadFromImage(image))
{
// error...
std::cout<<"Cannot load image"<<std::endl;
}
powerbar.setTexture(&tex);