SFML无法使用纹理

时间:2016-01-09 17:15:03

标签: c++ image textures loading sfml

我是SFML的新手,我正在尝试创建一个加载栏,可以增加和减少加载值。最初,该值从0开始,增加到100,并且在无限地执行相同操作时再次减小到0。

我正在尝试使用加载图像的纹理来执行此操作,如下所示。

enter image description here

图像为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));

但是,由于显示整个图像,或者图像的一部分显示的比例错误,我无法得到我的意图。

我是否知道有什么方法可以解决我的意图?感谢。

1 个答案:

答案 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);