组织Java游戏的资源

时间:2017-03-26 21:47:35

标签: java intellij-idea resources embedded-resource

我目前正在为PC编写Java游戏,我对资源(图像,声音,数据等)的位置有疑问。对于大多数PC游戏,游戏的主目录看起来像这样:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

你无法告诉IntelliJ停止将它们放入你的罐子里。你必须停止将它们放在那里。不要将资源放在Jar中,而是放在一个单独的目录中,而不是 public class ComparableExponents extends Exponents implements Comparable<ComparableExponents> { public ComparableExponents(int num, int exponent) { super(num, exponent); } public int compareTo(ComparableExponents exp) { if(getExponent() > exp.getExponent()) //{System.out.println(1);} return 1; else if(getExponent() < exp.getExponent()) //{System.out.println(-1);} return -1; else return 0; } public String toString() { return super.toString() + "/n Your exponent is: " + getExponent(); } } ,而是使用getClass().getResource()对象并打开它。在使用之前,您必须确保该文件存在。