Tôi đang cố gắng để có được mai mối địa phương làm việc trong GameKit sử dụng [[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:]
. Về cơ bản, tôi đang cố gắng triển khai các giao diện địa phương ít giao diện hơn: miễn là có một người chơi ở vùng lân cận địa phương của tôi, tôi muốn kết nối và bắt đầu một trận đấu. Quan trọng hơn, tôi chỉ muốn thực hiện việc này cho người chơi địa phương: Tôi không bao giờ muốn đối sánh tự động qua internet.Một số startBrowsingForNearbyPlayersWithReachableHandler questions
Tôi đã bật Trung tâm trò chơi cho ứng dụng của mình trong iTunes kết nối và đăng ký tài khoản sandbox khác trên mọi thiết bị tôi đang sử dụng để kiểm tra.
Tôi đã thử cả hai công cụ mai mối với GKMatchmakerViewController
(sau khi xác thực trình phát nội bộ) và ghép nối có lập trình với startBrowsingForNearbyPlayersWithReachableHandler:
, chạy cùng mã trên iPhone 4 và iPod Touch thế hệ thứ tư ngồi cạnh nhau trên bàn làm việc của tôi. Không bao giờ tìm thấy người khác; khi sử dụng GKMatchmakerViewController
giao diện cho việc tìm kiếm người chơi gần đó vẫn còn ở
chơi tìm ...
spinner, và khi sử dụng startBrowsingForNearbyPlayersWithReachableHandler:
, khối thông báo không bao giờ được gọi.
Dưới đây là khối hiện tại của tôi mã kiểm tra:
-(void)connectLocal
{
if(![GKLocalPlayer localPlayer].isAuthenticated)
{
// authenticateLocalPlayer calls connectLocal again after authentication is complete
[ self authenticateLocalPlayer ];
return;
}
[[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:^(NSString *playerID, BOOL reachable) {
NSLog(@"Reachability changed for player %@", playerID);
} ];
}
Các tài liệu là một chút thưa thớt & gây nhầm lẫn về chủ đề này, đặc biệt là khi nói đến sự khác biệt giữa mulitplayer địa phương và phù hợp qua internet. Ví dụ: có vẻ như cần thiết để xác thực trình phát nội bộ và tạo trận đấu trước khi tìm người chơi tham gia trận đấu đó (Creating Any Kind of Match Starts with a Match Request). Tuy nhiên this little nugget dường như đề xuất cách khác:
Giao diện người dùng chuẩn cho phép người chơi hiện đang kết nối trực tiếp với Trung tâm trò chơi.
Thêm vào đó, trong dòng chảy được mô tả trong Searching For Nearby Players, một yêu cầu trận đấu không được tạo ra cho đến khi bước 3, sau người chơi tìm kiếm thông qua các khối thông báo truyền cho startBrowsingForNearbyPlayersWithReachableHandler:
. Thật không may, tôi đã không bao giờ có được đến nay.
Vì vậy, các câu hỏi:
1) Tôi có ngay trong suy nghĩ tôi có thể gọi startBrowsingForNearbyPlayersWithReachableHandler:
trước khi chứng thực các cầu thủ địa phương? GameKit không ném một lỗi, vì vậy tôi giả sử nó là OK. Đây có thể là một giả định phát ban. Cho dù tôi xác thực hay không dường như không tạo ra nhiều khác biệt.
2) Có ai đã triển khai thành công tính năng kết hợp tự động địa phương bằng cách sử dụng [GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:
không? Có mã ví dụ tốt ở bất kỳ nơi nào minh họa luồng hoàn chỉnh, từ trình duyệt cho người chơi để bắt đầu trận đấu, tất cả đều theo chương trình?
3) Dường như có các báo cáo xung đột trên web về việc liệu các ứng dụng hỗ trợ GameKit có thể được kiểm tra trong Trình mô phỏng iOS hay không. Sự đồng thuận chung dường như không, và tốt hơn nên kiểm tra trên phần cứng iOS. Tôi đã sử dụng iPhone 4 & iPod Touch thế hệ thứ tư. Đối với những người đã thử nghiệm thành công nhiều người chơi địa phương, bạn đã sử dụng phương pháp thiết lập thử nghiệm nào &?
Hmm. Không có câu trả lời nào cả. Tôi có cùng một vấn đề. – bobmoff
Tôi đã yêu cầu hỗ trợ kỹ thuật của Apple về điều này ngay bây giờ, .. hy vọng họ biết câu trả lời. – bobmoff