2

SFML と C++ をいじっていますが、質問が 1 つあります。テクスチャをロードするときは、そのディレクトリを次のように指定する必要があります。

sf::Texture myTexture;
if(!(myTexture.loadFromFile("C:\\Folder\\image.png")));

しかし、ゲームを配布するときに、ユーザーがゲームを同じドライブにダウンロードすることを確認するにはどうすればよいですか? image.png は C: ドライブではなく E: ドライブにある可能性があります。ディレクトリを指定せずに C++ で画像ファイルを見つける方法を知りたいです。ここに理論的なコードがあります

if(!(myTexture.loadFromFile(@"image.png")));

そのため、この画像がどこにあっても、ゲームは画像を見つけることができます。私の唯一の懸念は、誰かが既にそのコンピューターに image.png というファイルを持っている可能性があることです。このため、重複を防ぐために、画像ファイルに非常に抽象的で一意の名前を付けます。

4

1 に答える 1

2

相対パスからの画像 (およびサウンド、フォントなど) の読み込みも同様に機能します。

ファイル名の衝突の可能性が心配な場合は、すべてのアセットを含むフォルダーを使用してゲームを配布してください。たとえばyourGame_resources、実行可能ファイルと同じレベルに配置します。ロード

myTexture.loadFromFile("yourGame_resources/image.png")
于 2013-07-03T10:02:53.853 に答える