我正在尝试在SFML中加载纹理,但是它不起作用。似乎该程序甚至都不知道JPG存在。

sf::Texture table;
    if (!table.loadFromFile("pool-table.jpg"))
    {
        std::cout << "Error!" << std::endl;
        return -1;
    }

我有这样的错误:
Error!
Failed to load image "

我应该怎么做才能解决这个问题?

最佳答案

路径很可能是问题所在。您可以使用相对路径,也可以使用绝对路径。您当前正在使用相对路径,因此您的文件必须位于程序的当前工作目录中。

为确保路径是问题,您可以使用绝对路径来尝试使用它,如下所示:

myTexture.loadFromFile("C:/Projects/MyProject/Media/myImage.png")

如果以这种方式工作,您将知道代码不是问题,而是路径。

如果在测试之后这仍然是一个问题,这是一个不错的技巧,可以节省一天的时间:在加载图像之前,插入以下代码行:
system("dir");

它将当前工作目录添加到控制台。当您键入相对路径时,应该考虑这些信息。

祝好运!

09-11 08:42