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