2017-03-26 85 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對象並打開它。在使用它之前,你必須確保文件存在。