2014-04-04 52 views
0

我正在製作一個遊戲,用戶可以在其中創建自己的地圖進行探索。使用GameKitGame Center是否可以挑戰另一個用戶播放剛創建的地圖?挑戰另一位玩家定製地圖嗎?

如果是這樣,這是如何工作的,以便其他用戶可以看到在另一個用戶遊戲實例中創建的圖形,數據等?

回答

0

這完全取決於你的遊戲設計。 GameCenter並不關心你在比賽中發送什麼類型的數據,只要它遵守Game Center Places對消息的限制。

常見的因素是,您需要找到一種方法將您的自定義級別序列化爲可通過Game Center發送的格式,然後編寫反序列化方法以將數據轉換爲地圖格式。如果你的地圖是持久的,你可以直接發送這個文件(除非你使用的是非常低效的表示),然後使用常規的方法來創建一個映射文件。

爲了簡單起見,我們可以說你正在用一個類似Minecraft的棋盤做一個回合制遊戲,所以你可以編輯的唯一東西就是每個塊的高度。您可以發送與

NSArray* board = //Array of arrays of NSNumbers with the heights of each block. 
NSArray* turn = @[@"This is the turn that sends the board", board]; 

//serialize this into a NSData with JSON then send it with endTurnWithMatchData: 

然後JSON序列化相當於一個特殊的轉你receivedTurnEventForMatch:方法,您測試在指數爲零的特殊字符串轉,或者只是希望它是第一個轉,然後使用它來創建木板,並以編程的方式結束當前的回合,如果是其他玩家回合,或讓玩家接收自定義地圖首次回合。

對於更加雄心勃勃的自定義內容(如圖像),您必須獲得當前可以發送的最大尺寸,然後將圖像分解爲要發送的塊。

+0

優秀和徹底的答案! –