我有一個像寵物小精靈或塞爾達一樣的2D自頂向下的45度遊戲。由於對象的y值決定了它的深度,因此需要按照y值的順序繪製對象。所以,當你站在一棵樹後面時,樹就會畫在你的播放器的頂部,看起來就像站在樹後面一樣。在呈現之前按y值排序對象?
我目前的設計是繪製一排瓷磚,然後畫出所有站在那一排上的玩家,然後畫下一行,然後畫出所有站在其上的玩家。這樣,任何具有比玩家更高的y值的圖塊都將被繪製在它們的前方以模擬深度。
但是,我的玩家目前是一個std::vector
的對象,只需在繪製完所有貼圖後進行迭代和繪製即可。對於我的方法來說,我必須迭代瓦片的每一行的向量,並且只在它們位於當前行上時呈現,或者按照每個幀的y值對每個玩家進行排序。這兩種方法似乎都是CPU密集型的,也許我過度思考它,並且在這種類型的遊戲中有一種更簡單的模擬深度的方法。
編輯: 這個遊戲是一個MMORPG類型的遊戲,所以有可能是許多玩家/ NPC的走動這就是爲什麼我需要一個非常有效的方法。
想法或意見將不勝感激!
感謝