2017-03-26 33 views
0

我目前正在为PC编写一个Java游戏,并且我对资源(图像,声音,数据等)应该位于何处有疑问。对于大多数PC游戏,游戏的主目录看起来是这样的:为Java游戏组织资源

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

的资源被组织成不同的目录,与游戏的主要.exe文件,以及可能的其他几个文件,在游戏的主目录。但是,在我的Intellij项目中,我已将所有资源都放在项目的resources目录中。我的理解是,当我将游戏构建为.jar文件时,resources目录中的所有资源也将打包到.jar文件中。

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

回答

1

人们将它分开的主要原因是它更容易更新。如果您的jar包中包含所有内容,那么这将是您每次更新资源时必须替换的一个大文件。但是,如果您单独存储资源,则启动程序只能更新所需的文件,而无需触摸游戏。

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