2

这是我的第一篇 stackoverflow 帖子。

我正在制作一个游戏,我需要一个目录来存放它的资源,例如图像、声音和配置文件。(请注意,游戏需要能够修改自己的配置文件。)我想我可以/usr/share/mygame/在 Linux 和C:/Program Files/MyGame/Windows 上使用,但出现了问题,因为游戏可能安装在这些地方,也可能不安装,因为以及出于开发目的。

我可以检查以找出可执行文件所在的文件夹并查看那里,但据我了解,这是不好的做法,并且难以实现跨平台。我显然不能使用工作目录,因为游戏可以从 shell 脚本、命令行、其他进程等运行。我还可以在整个文件系统中搜索某个“标记”文件,也许是为了敏感表明这是游戏文件所在的位置,但认真吗?梳理文件系统并不是启动应用程序的好方法,并且存在多次安装、多个标记文件甚至根本没有标记文件的困境,

所以,我放弃了!是时候直接上网咨询这个问题了。我应该如何确定我的文件存储在哪里?

4

2 回答 2

2

由于您不想使用工作目录,以防游戏从 shell 脚本、命令行等运行。您始终可以为操作系统使用相应的用户文件夹。

对于 Windows

%APPDATA%\<YourGame>

对于 Linux,我相信标准位置是

~/.local/share/<YourGame>
于 2013-08-15T06:14:13.437 回答
1

我认为您可以将数据存储在项目目录中,当您想要获取数据的绝对路径时,您可以首先使用以下方法获取项目的绝对工作目录:

getcwd()

并添加数据的相对路径,您将获得数据的绝对路径!

因此,您可以定义一个函数来设置项目环境并获取数据的绝对路径!

于 2013-08-15T06:05:15.543 回答