2

我在玩 SFML 和 C++ 并且有一个问题,在加载纹理时,您必须像这样指定它的目录:

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

但是在分发我的游戏时,我将如何确保用户将游戏下载到同一个驱动器上,并且 image.png 可能位于 E: 驱动器而不是 C: 驱动器上。我想知道一种在 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 回答