我正在用Java編寫一個2D等距遊戲引擎,用於趣味和練習,而且我已經到了想要找出最佳方式渲染精靈的點爲了模擬深度。我對這個主題沒有多少了解,但我總是喜歡在使用其他人之前嘗試提出自己的解決方案。那麼,以下兩種解決方案中哪一種更優化?爲什麼?如果我離得太遠,那麼以正確的順序呈現精靈的實際最佳方式是什麼?注意 - 我的遊戲是自由移動的,例如2D塞爾達而不是Pokemon Red中的網格樣式。Java 2D渲染深度點子
我可以使用以深度順序存儲的實體對象的鏈表。然後,每當實體移動時,將其當前的Y位置與前一個節點和下一個節點進行比較,並在必要時交換位置。然後,重複該過程直到不再需要。 (我不確定Java的鏈表是如何工作的,但是如果需要的話我可以創建一個自定義列表)
只需要一個實體數組,其長度等於屏幕高度(以像素爲單位)。然後當每個實體移動時,只需將其在陣列中的位置改變爲等於其在屏幕上的Y位置的位置(或者如果該位置被拍攝,則最近的可用位置)。
哦,我明白了。當你說像素值時,我認爲你的意思是像素中的顏色。現在我看到它是如何應用於此的,在這種情況下,我將使用List選項而不是固定數組 –
*「哦,我明白了。」*說實話,當我剛剛閱讀答案時, ,我意識到現在已經在編輯中添加了重要的缺失部分。無論如何,你自己都會達成相同的基本理解。 :) –