我正在尝试在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");
它将当前工作目录添加到控制台。当您键入相对路径时,应该考虑这些信息。
祝好运!