为 Java 游戏组织资源

Organizing Resources for a Java Game

我目前正在为 PC 编写 Java 游戏,我对资源(图像、声音、数据等)的位置有疑问。对于大多数 PC 游戏,游戏的主目录如下所示:

GameName
 ├─ Resource Directory
 │   └── ...
 ├─ More Resources
 │   └── ...
 .
 .
 └── GameName.exe

资源被组织到不同的目录中,游戏的主 .exe 文件,可能还有一些其他文件,在游戏的主目录中。但是,在我的 Intellij 项目中,我已将所有资源放在项目的 resources 目录中。据我了解,当我将游戏构建到 .jar 文件中时,resources 目录中的所有资源也将打包到 .jar 文件中。

那么,有什么理由让我想将所有资源分离到游戏主目录中的不同子目录中,而不是简单地将它们全部包含在游戏的 .jar 文件中?如果是这样,我如何防止 Intellij 将所有资源打包到 .jar?

人们将它分开主要是因为它更容易更新。如果您的 Jar 中包含所有内容,那将是一个大文件,您每次想要更新资源时都必须替换它。但是如果你单独存储你的资产,你的启动器可以只更新需要的文件,而不会影响游戏。

您不能告诉 IntelliJ 停止将它们放入您的 Jar 中。你必须停止把它们放在那里。不要将您的资源放在您的 Jar 中,而是放在一个单独的目录中,而不是 getClass().getResource() 您使用 File 对象并打开它。使用前必须确保文件存在。