1

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のフレームワークを使用するプロジェクトでのみ問題になります。画像をリソースとして追加できますか?実際にその場所を取得してコードで使用するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

1

あなたの質問は正確には明確ではありませんが、私はできる限り説明しようとします:

OSに関する限り、Resourcesはアプリケーションバンドル内の単なるフォルダーです。これに関する唯一の特別な点は、アプリケーションの起動時に、Resourcesフォルダーがデフォルトのファイルパス(作業ディレクトリと呼ばれる)であるということです。

つまり、アプリのリソースファイルに画像がある場合は、次のコマンドで画像を読み込むことができます。

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

また

blockImage.LoadFromFile("block.png");

この呼び出しを使用すると、OSはblock.pngがハードドライブのルートにあるかどうかを確認しますが、見つからない場合は作業ディレクトリを確認します*

作業ディレクトリを変更したい場合は、共通のUNIX関数を使用できます。

chdir(const char *path);

MacOSXには次のものが含まれています。

#include <unistd.h>

Arjitが参照していたのは、Xcodeの便利な機能です。これにより、任意のターゲットでコピーファイルのビルドフェーズを作成し、ファイルやフォルダーをアプリのResourcesフォルダーにコピーすることができます。

これで問題が解決することを願っています。

*実際に最初に作業ディレクトリをチェックする可能性がありますが、確かではありません。

于 2010-10-17T04:03:32.220 に答える
0

プロジェクトを右クリックすると、リソースを追加するオプションがあり、既存のITemを追加でき、簡単に追加できると思います。

フォルダを追加する場合 http://forums.macrumors.com/showthread.php?t=458594

于 2010-08-09T11:31:59.573 に答える