我一直在使用java常規圖形設備,awt和swing東西,Graphics和Graphics2D等等,然後開始觀看關於LWJGL的一系列教程。我非常喜歡並決定在該系統中重做我的一款遊戲。我想,因爲我已經有了邏輯,這很容易。我遇到了一個概念問題。如何使用LWJGL將圖像保存在內存中?
在這個特定的情況下,我有一個類框代表一個盒子,但我用圖像繪製它,從而製作邊框。我有9個圖像,一個用於中心(這只是一個普通的彩色1像素寬度的圖像),4個用於側邊,4個用於角落。我將所有這些圖像放在一個BufferedImage數組中,這是靜態的,因爲它對所有盒子都是一樣的。然後,每個盒子都有一個全局的BufferedImage,我在其中畫出了盒子,這個過程非常緩慢,因爲我必須在盒子的每個部分繪製圖像。然後,在真正的繪製方法(即接收圖形g)中,我只是將BufferedImage繪製在正確的位置。由於框的大小一旦創建就不會改變,我只需在構造函數中「創建」一次框圖。
我無法確定如何使用LWJGL做到這一點,因爲gl_方法(glBegin(),glVertex2i())將始終在屏幕上繪製,即使我從未指定過。那麼我如何繪製圖像,如何將其存儲在內存中(也可以使用BufferedImage),以及當我需要時如何在屏幕上繪製它?我發現LWJGL使用紋理,並且我使BufferedImage的第一個靜態數組成爲Texture的一個靜態數組,然後將9個紋理中的每一個正確保存在其中。這是正確的方式嗎?全球的BufferedImage怎麼樣,它應該是一個全球性的紋理?在那種情況下,如何在紋理上「繪製」?
非常感謝,我現在正在尋找它,我相信它會非常有用。關於這個盒子,也許我只是不知道紋理是如何工作的,但它是這樣的:你創建的每個盒子都有不同的尺寸,並且它們都具有相同的固定尺寸邊界。所以我猜想更好的辦法是創建9個圖像,就像我說的。我不知道是否有更好的方法 - 我想象一下,靜態紋理的邊框會與盒子成比例地增長,我不想那樣。 –