2014-05-19 19 views
12

İki katılımlı, A ve B ile bir sıra tabanlı eşleme sahibim. Şu anda A'un dönüşüdür. B arayarak yersiz çıkar: - maç statüsü GKTurnBasedMatchStatusOpen veUzak oyuncu çıkışına karşı doğru yanıt Oyun Merkezindeki

[match participantQuitOutOfTurnWithOutcome:GKTurnBasedMatchOutcomeQuit ... etc. 

Bildiğim kadarıyla A 'ın Oyun Merkezi uygulaması ile ilgili olarak, B ile maç hala oyunda maç sonuçları sırasıyla GKTurnBasedMatchOutcomeNone ve GKTurnBasedMatchOutcomeQuit. gibi hissediyor dönüşler sonuna kadar her maçın yineleme periyodik

participantA.matchOutcome = GKTurnBasedMatchOutcomeWon; 
participantB.matchOutcome = GKTurnBasedMatchOutcomeQuit; 

[self endMatchInTurnWithMatchData: ... etc. 

Ancak, hiçbir bildirim var gibi görünüyor participantQuitOutOfTurnWithOutcome için ve: belgelerine

, katılımcı bir bunu algılar ve çağırmalıdır anlaşılıyor bir kludge.

Bu eşleşmeleri sonlandırmak için doğru yaklaşım nedir?

cevap

11

Bu güzel bir çözüm :) Her şeyden

Önce bir işleyici

 
[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self; 

set sahip olduğu sonra, geri aramaları

 
handleInviteFromGameCenter: 
handleTurnEventForMatch:didBecomeActive: 
handleMatchEnded: 
handleTurnEventForMatch:didBecomeActive: 
handleTurnEventForMatch:didBecomeActive: 
player:receivedExchangeRequest:forMatch: 
player:receivedExchangeCancellation:forMatch: 
player:receivedExchangeReplies:forCompletedExchange:forMatch: 

bu yöntemi gerek alacak

To to Rakip tarafındaki maç sonunu ele alalım. İşte

belgelerinde https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/ImplementingaTurn-BasedMatch/ImplementingaTurn-BasedMatch.html#//apple_ref/doc/uid/TP40008304-CH15-SW12

+0

link teşekkür ederiz! "HandleMatchEnded:" uygulamasına sahibim, ancak bu davayı kapsıyor ya da sandbox sızdırmazlığının kurbanı olduğu açıktı. Ödül sizindir :) – jnic

+0

Teşekkür ederiz :) – l0gg3r

+0

Lütfen unutmayın, olay türü "push", yani "iOS Simulator" üzerinde çalışmayacak, gerçek cihazlarda test etmeye çalışın. – l0gg3r

İlgili konular