2012-03-23 110 views
1

所以我正在製作一款類似於帝國時代2的遊戲。到目前爲止,我一直在做的是使用Applet並製作一系列包含單元和建築物的圖塊(網格)。我認爲從長遠來看,這將是低效率的。我相信有更好的方法來做到這一點,也許使用GUI,但我不是一個非常有經驗的程序員,所以我採取了這種更原始的方法。有沒有更好,更有效的方法在地圖上放置包含角色和建築物的圖塊?遊戲界面設計

謝謝。

這是一個很值得我多麼希望它看起來像:enter image description here

+7

沒有試圖以任何方式讓你離開,但如果你不是一個非常有經驗的程序員,你可能想從一個稍微小一點的項目開始,因爲這將** ** HARD **。 – 2012-03-23 02:23:14

+1

另外,您可能會對http://gamedev.stackexchange.com感興趣。 – 2012-03-23 02:28:50

回答

1

瓷磚的排列應該是罰款 - 這是通常用來表示在2D遊戲中的地圖。

請注意,你可能會想區分:

  • 地圖地形瓦片,其中每平方米只包含一個瓷磚
  • 單位/建築/其他遊戲對象,其中每平方米可能包含多個對象

對於地形單個陣列很好,每個位置有一個瓦片。

對於其他對象,您需要一種方法來在每個方塊中存儲多個對象。在每個正方形中都有一個ArrayList的數組可以工作 - 儘管您可能希望在沒有任何內容的所有正方形中留空,以避免創建大量空ArrayList。

創建遊戲對象的全局集合也很有用,因此您可以遍歷所有遊戲對象和/或快速查找特定對象,而無需搜索整個地圖。我通常爲此使用類似HashMap的東西,其中整數鍵是每個遊戲對象的唯一ID。

0

這取決於你認爲是'低效'的部分。如果大多數數組元素都將包含數據,並且您需要能夠快速輕鬆地查找數據,那麼數組無疑是最佳方式。他們很容易理解,mikera描述的用於存儲數據的邏輯是一種非常好的入門方式。

有數據結構很大基於瓦片的遊戲用於存儲數據。其中大部分針對「稀疏」圖形進行了優化。稀疏圖是大多數位置都是空的,但其中一些內容是空的。非常大的世界地圖往往有這個質量。如果你對這些場景感到好奇,那麼你應該谷歌「四樹平鋪」。

但是總的來說,如果你還在學習開發,那麼堅持數組。不成熟的優化是萬惡之源。 :)