EDIT: Tôi đã thực hiện một dự án mới, sạch sẽ, nhưng vẫn không thể làm cho nó hoạt động. Xin vui lòng tải xuống, có một chút mã để xem xét và có lẽ dễ dàng cho một chuyên gia hoặc bất cứ ai từ xa kinh nghiệm để xem những gì tôi đang làm sai. Chỉ cố gắng gửi số nguyên đó.Trung tâm trò chơi - Gửi và nhận dữ liệu
http://www.2shared.com/file/fPOCLlg5/gkTest.html
Hi
Tôi cố gắng để thực hiện Game Center nhiều người trong game iphone của tôi và gặp khó khăn trong việc hiểu các mẫu tôi có trong tay trong Apple Documents và từ các bên thứ ba liên quan đến việc gửi và nhận dữ liệu.
Ai đó có thể xin giải thích các mẫu mã trong các tài liệu chính thức của Apple tại đây xin vui lòng: http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/MatchesandVoice/MatchesandVoice.html#//apple_ref/doc/uid/TP40008304-CH10-SW4
Hoặc giúp tôi tìm ra mẫu này code tôi đã được cung cấp với. Của nó một lớp được xây dựng sẵn, thực hiện để xử lý tất cả các nhiệm vụ trung tâm trò chơi và một mẫu từ nó để gửi và nhận dữ liệu sẽ được này:
- (void) sendPosition
{
NSError *error;
PositionPacket msg;
msg.messageKind = PositionMessage;
msg.x = currentPosition.x;
msg.y = currentPosition.y;
NSData *packet = [NSData dataWithBytes:&msg length:sizeof(PositionPacket)];
[match sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:&error];
if (error != nil)
{
// handle the error
}
}
Và nhận:
- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID
{
Packet *p = (Packet*)[data bytes];
if (p.messageKind == PositionMessage)
// handle a position message.
}
câu hỏi lớn của tôi về mã này tạo tài liệu chính thức là:
Nơi nào PositionPacket
/Packet
có nguồn gốc từ đâu? Và giả sử khi bạn muốn gửi/nhận dữ liệu bạn gọi cho họ như vậy:
[self sendPosition];
hoặc
[self match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID];
nào để nhập gì như trận đấu, dữ liệu và playerid?
Ví dụ: Tôi có một 'điểm số' có tên int nhưng không có một khóa đặc biệt nào tôi cần để sử dụng một cái gì đó?
Điều này thật tuyệt vời, cảm ơn rất nhiều! Làm cho ý nghĩa hơn nhiều, mặc dù như đối với 'trận đấu' này chỉ là một GKMatch mới tôi có thể tuyên bố hoặc nó cần phải được từ một địa điểm cụ thể? –
Trong trường hợp của phương pháp này, trận đấu được chuyển cho bạn. Tôi nghi ngờ rằng trong trường hợp đơn giản (tức là chỉ có một trò chơi diễn ra tại một thời điểm) mà bạn không cần phải lo lắng về nó/làm bất cứ điều gì với nó trong các phương pháp này. Nếu bạn đang tìm kiếm thêm thông tin về các trận đấu nói chung, họ đến từ dịch vụ Matchmaking. Chi tiết tại đây: http://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/MatchesandVoice/MatchesandVoice.html#//apple_ref/doc/uid/TP40008304-CH10-SW9 – ipmcc
Tôi hiểu rằng nhận được phương thức dữ liệu cho chúng ta GKMatch 'match' nhưng' match' đến từ đâu trong phương thức sendScore? –