【问题标题】:SFML unable to create a loading bar using textureSFML 无法使用纹理创建加载条
【发布时间】:2016-04-14 06:48:22
【问题描述】:

我是 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));

但是,我无法得到我想要的结果,因为要么显示了整个图像,要么显示了图像的一部分以错误的比例。

我想知道有什么方法可以解决我的意图吗?谢谢。

【问题讨论】:

标签: c++ image textures loading sfml


【解决方案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);

【讨论】:

    猜你喜欢
    • 2014-08-13
    • 2020-05-06
    • 1970-01-01
    • 2014-11-22
    • 2020-07-21
    • 2021-02-01
    • 1970-01-01
    • 2012-10-03
    • 2014-12-28
    相关资源
    最近更新 更多