为 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
对象并打开它。使用前必须确保文件存在。
我目前正在为 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
对象并打开它。使用前必须确保文件存在。