我的遊戲中有三種不同的級別,用戶可以選擇。我在GKMatchRequest的playerGroup屬性中保存了玩家所選的等級。在比賽結束後,如何從GKTurnBasedMatch中檢索playerGroup,或者有不同的方式來跟蹤哪個比賽級別匹配?如何從GKTurnBasedMatch中檢索playerGroup屬性?
2
A
回答
1
創建GKMatchRequest後,您必須調用findMatchForRequest。在findMatchForRequest的完成處理程序中,您可以將遊戲的級別存儲在新匹配的matchData屬性中。
1
我使用GKTurnBasedMatchmakerViewController來呈現自動匹配/邀請UI。當創建一個GKMatchRequest,我添加ObjC相關playerGroup值(打包成一個NSNumber)到GKTBMVC這樣的:
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.playerGroup = somePlayerGroup;
GKTurnBasedMatchmakerViewController *mmvc = [[GKTurnBasedMatchmakerViewController alloc] initWithMatchRequest:request];
objc_setAssociatedObject(mmvc,
&kPlayerGroupKey,
[NSNumber numberWithInteger:request.playerGroup],
OBJC_ASSOCIATION_RETAIN);
[myViewController presentViewController:mmvc
animated:YES
completion:nil];
然後在turnBasedMatchmakerViewController:didFindMatch:
委託方法我讀了playerGroup
值就知道我們需要什麼樣的比賽建立或加入:
- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)mmvc didFindMatch:(GKTurnBasedMatch *)match
{
[myViewController dismissViewControllerAnimated:YES
completion:^{
NSNumber *n = objc_getAssociatedObject(mmvc, &kPlayerGroupKey);
NSInteger playerGroup = [n integerValue];
[self switchToMatch:match matchKind:playerGroup];
}];
}
當然,你創建一個新的比賽時,可以存儲在playerGroup
match.matchData
,但有時它更方便與婚介視圖控制器通過。
相關問題
- 1. 如何從SubnodeConfiguration中檢索xml屬性?
- 2. 如何從表中檢索源屬性?
- 3. 如何從modelstate檢索屬性值
- 4. 如何從xml檢索屬性
- 5. 如何從屬性檢索drawable參考
- 6. 如何檢索@IndexedEmbedded屬性?
- 7. 如何檢索LoaderException屬性?
- 8. 如何檢索employeeid屬性
- 9. 從檢索屬性節點
- 10. 從屬性檢索邊距
- 11. IOS從ABPerson檢索屬性
- 12. 從XML屬性檢索值
- 13. 從POM中的classpath中檢索屬性
- 14. 檢索屬性
- 15. 從對象中檢索屬性
- 16. 無法從展開中檢索屬性
- 17. 從OpenLayers.Layer.Vector對象中檢索GeoJson屬性
- 18. 從json中檢索屬性? PHP
- 19. 從XNode中檢索屬性值
- 20. 從文檔中檢索單個屬性
- 21. 從html'value'屬性中檢索值
- 22. 從cml中檢索xml屬性值#
- 23. C#從屬性中檢索字段名
- 24. 從屬性文件中檢索參數
- 25. VBScript:從對象屬性中檢索值
- 26. 如何檢索C#中屬性的屬性?
- 27. GKTurnBasedMatch檢測邀請
- 28. 從UITypeEditor中,檢索應用於屬性父項的屬性.net
- 29. 如何使用反射從類聲明中檢索屬性
- 30. 如何從數據綁定中檢索對象屬性信息