Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.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++_Xcode_Image_Load_Sfml - Fatal编程技术网

C++ 未加载SFML映像

C++ 未加载SFML映像,c++,xcode,image,load,sfml,C++,Xcode,Image,Load,Sfml,我将Xcode与SFML一起使用。我将文件放在Xcode项目中,该项目将其复制到目录中。但是,我仍然无法将其加载到程序中。有什么想法吗 代码: 编译器: 目录: 谢谢出现此错误的原因有两个: 发件人: 某些格式选项不受支持,如渐进式jpeg 或 它找不到文件,因为文件名中有空格(重命名文件,例如colorfull_small.jpg) 或 程序的工作目录没有.jpg文件(您可以使用getcwd(NULL)(可在#include中找到)打印它)我有点惊讶于“正确答案”有一条评论说它不工作。。。

我将Xcode与SFML一起使用。我将文件放在Xcode项目中,该项目将其复制到目录中。但是,我仍然无法将其加载到程序中。有什么想法吗

代码:

编译器:

目录:


谢谢

出现此错误的原因有两个:

发件人:

某些格式选项不受支持,如渐进式jpeg

它找不到文件,因为文件名中有空格(重命名文件,例如colorfull_small.jpg)


程序的工作目录没有.jpg文件(您可以使用
getcwd(NULL)
(可在
#include
中找到)打印它)

我有点惊讶于“正确答案”有一条评论说它不工作。。。无论如何:

渲染(绘图)需要在循环的每次迭代中进行:

int main(int argc, const char * argv[])
{
    sf::RenderWindow(window);
    window.create(sf::VideoMode(800, 600), "My window");

    sf::Texture img;
    if(!img.loadFromFile("colorfull small.jpg")) return 0;

    sf::Sprite sprite;
    sprite.setTexture(img);

     while(window.isOpen())
    {
        sf::Event event;
        while(window.pollEvent(event))
        {
            if(event.type == sf::Event::Closed) window.close();
        }

        // drawing needs to take place every loop right HERE 
        window.clear();
        window.draw(sprite);
        window.display();
    }

    return 0;
}
引述:

该项目附带了main.cpp中的一个基本示例和一个助手函数:std::string resourcePath(void);在ResourcePath.hpp和ResourcePath.mm中。如所提供的示例所示,此函数的用途是以方便的方式访问应用程序包的Resources文件夹

这意味着您必须编写类似以下内容:

#include "ResourcePath.hpp"
:
:
if (!icon.loadFromFile(resourcePath() + "colorfull small.jpg")) {
:
:
(受项目模板生成的默认代码启发。)


nvoigt的回答也非常重要。

谢谢。我把名字改成了colorful_small.jpg,但没有帮上忙。然后我下载了一个PNG文件,以确定渐进式JPEG是否是问题所在。它给了我同样的错误。我不知道我该怎么做你的解决方案的最后一部分。我包括了你告诉我的图书馆,但我不知道为什么每次有活动时我都要把它画出来?我只想画一次,让它显示出来,不做任何改变。电脑不是这样工作的。如果您只绘制一次,您的窗口将不会重新绘制,看起来您的程序将崩溃。运行程序意味着一直在绘制图形。如果你有业务程序,他们可能会满足于在特殊事件发生时重新绘制,如大小更改或其他窗口覆盖你的窗口并被删除,但一般来说。。。你经常重画。看看教程就知道了。他们甚至说你不必害怕每帧重画1000个项目。。。这远远低于今天的图形卡所能提供的功能。
#include "ResourcePath.hpp"
:
:
if (!icon.loadFromFile(resourcePath() + "colorfull small.jpg")) {
:
: