Получение ресурсов проекта XCode в C ++ - PullRequest
1 голос
/ 08 августа 2010

Я пишу простую игру, используя SFML в Xcode. У меня есть .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 ]

1 голос
/ 17 октября 2010

Ваш вопрос не совсем понятен, но я постараюсь объяснить как можно лучше:

Что касается ОС, то Ресурсы - это просто папка внутри пакета приложения, единственноеОсобенность этого заключается в том, что при запуске приложения папка «Ресурсы» - это путь к файлу по умолчанию (называемый рабочим каталогом).

Это означает, что если у вас есть изображение в файле ресурсов приложения, вы можете загрузить его с помощью:

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>

Арджит ссылался на удобную функцию в XCode, благодаря которой вы можете сделать фазу сборки файла копирования в любой заданной цели и сделать так, чтобы он копировал файлы или даже папки в папку ресурсов приложения.

Надеюсь, что это очищает этуngs up!

* Он может сначала проверить рабочий каталог, не уверен.

0 голосов
/ 09 августа 2010

Я думаю, что когда вы щелкаете правой кнопкой мыши по проекту, у него есть возможность добавить ресурс, добавить существующий ITem, и вы можете легко добавить его

Для добавления папки http://forums.macrumors.com/showthread.php?t=458594

...