我目前正在为PC编写Java游戏,我对资源(图像,声音,数据等)的位置有疑问。对于大多数PC游戏,游戏的主目录看起来像这样:
GameName
├─ Resource Directory
│ └── ...
├─ More Resources
│ └── ...
.
.
└── GameName.exe
资源被组织到不同的目录中,游戏的主目录中包含游戏的主.exe
文件,可能还有一些其他文件。但是,在我的Intellij项目中,我已将所有资源放在项目的resources
目录中。我的理解是,当我将游戏构建到.jar
文件中时,resources
目录中的所有资源也将打包到.jar
文件中。
那么,有什么理由我想将我的所有资源分成游戏主目录中的不同子目录,而不是简单地将它们全部包含在游戏中.jar
文件?如果是这样,我如何让Intellij将所有资源打包到.jar
?
答案 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()
对象并打开它。在使用之前,您必须确保该文件存在。