我在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框架的项目很重要。我可以将我的图像添加为资源吗?我如何实际获取其位置并在我的代码中使用它?
谢谢!
答案 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,您可以轻松添加它