2014-05-02 69 views
0

我一直在製作一個最近使用Unity作爲引擎(C#語言)的益智遊戲。到目前爲止,進展很不錯,但我有一個有關如何在多個對象之間實現共享資源的問題。如何實現共享資源的多個對象(相同類型)

背景:這個益智遊戲有幾個存儲瓦片數組的「GameBoard」對象。瓷磚可以是任何類型的TileType;例如。紅色瓷磚,藍色瓷磚,綠色瓷磚等。每個GameBoard目前都會產生自己的一排瓷磚,這些瓷磚會按設定的時間間隔附加到電路板的瓷磚陣列上。不過,我希望添加的行在多個板上相同,以便爲每個玩家制作遊戲。由於遊戲機制/玩家動作,棋盤會以不同的速度產生塊的行,所以它們不一定會同時產生行,而是產生的行的順序應該是相同的。 換句話說,即使這兩個玩家設法相互失去同步,我也希望這兩個玩家以相同的模式產生這兩個玩家。

我意識到,讓一個對象負責跟蹤「生成的行」的順序可能是一個好主意,但我不確定使用的最佳實現/數據結構是什麼。

什麼是建立一個系統的最佳方式,其中多個GameBoard能夠以預定順序異步產生行?

回答

2

在我看來,你正在尋找的只是一個隊列。玩家如何連接(例如服務器,對等網絡)?

如果它在服務器上,那麼你可以創建一個隊列,每個玩家都有自己的引用/指針/索引到隊列中。

如果您向播放器發送新行,那麼它們可以保留自己的隊列,在發送新隊列時排隊並根據需要排列隊列。

您可能不需要爲每行存儲新對象,應該可以將索引存儲(並傳遞)到預建對象的集合中。

+0

這就是我決定實施這個系統的方法。我將來會回覆你的。 – TheYokai

+0

@TheYokai,很酷。 –