用c ++获取Xcode项目的资源

时间:2010-08-08 05:21:23

标签: c++ xcode resources path sfml

我在Xcode中使用SFML编写一个简单的游戏。我有一个我想在精灵中使用的块的.png。目前,我必须在下面的代码段中输入图像的完整路径:

 sf::Image blockImage;

 if (!blockImage.LoadFromFile("/Users/me/Development/Tetris/images/block.png")) {
  cerr << "Could not load block image." << endl;
  App.Close();
 }

我宁愿不必像这样硬编码我游戏中每张图片的位置。我知道Xcode项目可以有'资源',但我以前从未使用过这个,而且从我能够使用Google开始,它只对使用Apple框架的项目很重要。我可以将我的图像添加为资源吗?我如何实际获取其位置并在我的代码中使用它?

谢谢!

2 个答案:

答案 0 :(得分:1)

你的问题并不完全清楚,但我会尽力解释:

就操作系统而言,Resources只是应用程序包中的一个文件夹,唯一特别的是当应用程序启动时,Resources文件夹是默认文件路径(称为工作目录)。 / p>

这意味着如果您的应用资源文件中有图像,则可以使用以下命令加载:

blockImage.LoadFromFile("/Developer/MyApp/build/Development/Tetris.app/Contents/Resources/block.png");

blockImage.LoadFromFile("block.png");

当您使用此调用时,操作系统会检查block.png是否位于硬盘驱动器的根目录中,但未找到它然后检查工作目录*

如果要更改工作目录,可以使用常用的unix功能

chdir(const char *path);

Mac OS X中包含以下内容:

#include <unistd.h>

Arjit所引用的是Xcode中的一个方便功能,您可以在任何给定目标中创建复制文件的构建阶段,并将文件甚至文件夹复制到应用程序的Resources文件夹中。

希望这可以解决问题!

*它实际上可能首先检查工作目录,不确定。

答案 1 :(得分:0)

我认为当您右键单击项目时,它可以选择添加资源添加现有ITem,您可以轻松添加它

用于添加文件夹 http://forums.macrumors.com/showthread.php?t=458594