2013-04-06 185 views
2

我有一個遊戲中心遊戲,允許玩家每回合多次移動。在iOS 6中,蘋果在saveCurrentTurnWithMatchData中實現了一個很棒的功能,它可以讓你做到這一點 - 它將數據保存到遊戲中心,以防止作弊,例如通過反覆重做移動,而不會推進到下一個玩家。有沒有辦法在不發送推送通知的情況下調用saveCurrentTurnWithMatchData?

的問題是,我發現,這實際上觸發了同一個推送通知taht被髮送當玩家確實末輪到自己。因此,遊戲中的其他玩家會在應用程序圖標上看到徽章,並在錯誤時認爲它輪到他們。

有沒有人找到解決方法?任何方式撥打saveCurrentTurnWithMatchData沒有發送推送通知?如果沒有,這似乎是一個應該引起蘋果關注的設計缺陷。

回答

0

我同意,這似乎是一個設計缺陷。我也在開發一種基於回合的遊戲,玩家可以在將控制權交給下一位玩家之前採取多種行動。同時,我希望其他玩家在觀看比賽時看到每一個動作。如果其他玩家沒有運行該應用,我希望他們只有在控制權傳遞給其他玩家時纔會收到推送通知。

而不是使用saveCurrentTurnWithMatchData:,我使用endTurnWithNextParticipants:,但我指定了當前播放器,而不是下一個。這似乎這樣的伎倆:

NSTimeInterval interval = 86400; // seconds in a day 
[currentMatch 
    endTurnWithNextParticipants:[[NSArray alloc] initWithObjects:currentMatch.currentParticipant,nil] 
    turnTimeout:interval matchData:[self packMatchData] 
    completionHandler:^(NSError *error) { 
    if (error) { 
     // handle error 
    } 
    } 
]; 
+0

不幸的是這會給推送通知,以目前參與者已安裝的遊戲的任何其他設備,如注意[這裏](http://stackoverflow.com/questions/9760209/是,有-A-方式對更新matchdata-IN-A-gkturnbasedmatch-不-運出喲) – sup 2013-11-13 07:28:21

相關問題