Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SFML无法使用纹理创建加载栏_C++_Image_Textures_Loading_Sfml - Fatal编程技术网

C++ SFML无法使用纹理创建加载栏

C++ SFML无法使用纹理创建加载栏,c++,image,textures,loading,sfml,C++,Image,Textures,Loading,Sfml,我是SFML新手,我正在尝试创建一个加载条,它可以增加和减少加载值。最初,该值从0开始,增加到100,然后再减少到0,同时无限地执行相同的操作 我正在尝试使用加载图像的纹理来实现这一点,如下所示 图像是410 x 130,我计划在每个时间步长上显示12.5%的图像,并在显示整个图像时剪切12.5%的图像。我正在做这样的事情: sf::RectangleShape powerBar; sf::Texture texture; if (!texture.loadFromFil

我是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));
然而,我无法得到我想要的,因为要么是整个图像被显示,要么是图像的一部分被以错误的比例显示


我可以知道我有什么办法可以实现我的目标吗?谢谢。

也许你可以试试这个:

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);
您应该向我们提供以下信息: