我正在做一個基於回合的遊戲...傳輸的唯一信息是玩家的分數以及是否已發送回合。遊戲中心成果發佈
當下一個玩家收到回合。數據被存儲到「scoreToBeat」並且turnSent = 1。玩家然後輪到他們。之後遊戲結束被稱爲turnSent = 1。我使用了Ray Wenderlich的基於回合的教程http://www.raywenderlich.com/5480/beginning-turn-based-gaming-with-ios-5-part-1。
在他的情況下,遊戲結束,並且是一條領帶。像這樣...我似乎無法讓它顯示失去的人。
for (GKTurnBasedParticipant *part in currentMatch.participants) {
part.matchOutcome = GKTurnBasedMatchOutcomeTied;
}
我似乎無法讓它顯示失去它的人總是表現出勝利。這是我許多人的最新嘗試......在比賽btw中恰好有2名球員......任何想法都將不勝感激。
for (GKTurnBasedParticipant *part in currentMatch.participants) {
if(part==currentMatch.currentParticipant)
{
if(points>scoreToBeat)
{
part.matchOutcome=GKTurnBasedMatchOutcomeWon;
}
else {
part.matchOutcome=GKTurnBasedMatchOutcomeLost;
}
}
else {
if(points>scoreToBeat)
{
part.matchOutcome=GKTurnBasedMatchOutcomeLost;
}
else {
part.matchOutcome=GKTurnBasedMatchOutcomeWon;
}
}
我已經把NSLog的無處不在...它通過邏輯正確,例如說玩家應該輸。在這部分之後,我不會對匹配數據做任何事情...只需使用[currentMatch endMatchInTurnWithMatchData:data completionHandler:^(NSError * error){ 如果(error){ NSLog(@「%@」,error) ; } }];也許這就是問題所在。 –
所以,爲了確保在結束比賽之前調用給定的方法?因爲每位球員在比賽結束前都應該有比賽結果。你也許可以嘗試爲每個玩家設置matchOutcome爲GKTurnBasedMatchOutcomeLost,然後看看它是否有效(如果它不是真的很奇怪)。至於我的應用程序,我將結果設置爲GKTurnBasedMatchOutcomeTied,因爲我使用用於顯示遊戲的自定義表格視圖,所以遊戲結果只是使用matchData在本地計算/決定。 –