我在Windows上的SFML有问题。我通常在Linux下工作,但是这次我在Windows上的VSCode上工作。因此,我试图从名为toto.png
的文件中加载图像。但是当我绘制它时,每次都会出现错误Failed to load image
。我首先以为这是我的功能,所以我尝试直接在主函数中绘制精灵,但出现相同的错误,然后我以为它来自我的路径,因此我将图像复制到了项目所有可能的文件夹中,但与此相关的事件仍然无法正常工作。
#include "Window.hpp"
#include "Grid.hpp"
WindowHandling::WindowHandling()
{
_window.create(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT), "2048");
}
void WindowHandling::DrawWindow()
{
sf::Texture texture;
sf::Sprite sprite;
texture.loadFromFile("toto.png");
sprite.setTexture(texture);
std::unique_ptr<Grid> Map(new Grid());
while (_window.isOpen()) {
Map->CreateGrid(_window);
while (_window.pollEvent(_event)) {
if (_event.type == sf::Event::Closed)
_window.close();
_window.draw(sprite);
}
//_window.clear(sf::Color(220, 220, 220));
_window.display();
}
}
答案 0 :(得分:0)
在VSCode项目运行设置中将工作目录指定为带有图像的路径。
.vscode/launch.json
添加行:
"cwd": "${fileDirname}"
转到“配置”部分
或直接从已编译到的目录中通过.exe运行它
答案 1 :(得分:0)
问题已解决,我正在debug
中执行项目,而不是release
...