1

シンプルなゲーム センターのマルチプレイヤー ゲームを開発しています。プレイヤーにメッセージを送信することを除いて、私はほとんどすべてを管理しました。つまり、プレイヤーをゲームに招待したり、ゲームを開始したりできます。

アップルのドキュメントに関しては、次の方法を使用してデータを送信していますが、まったく機能しません。

const char *bytes = "123";  
NSData *packet = [NSData dataWithBytes:&bytes length:3];
[myMatch sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:nil];

可能であれば、実用的なサンプルは素晴らしいでしょう。どうもありがとう。

私はほとんど同じことをしました。

NSError *errorTransmit; 
const char *bytes = "asd";  
NSData *packet = [NSData dataWithBytes:&bytes length:3];
[myMatch sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:&errorTransmit];    
if (errorTransmit != nil)

    NSLog(@"Error sending data to peers: %@", [errorTransmit localizedDescription]);
}

ただし、コードが NSLog(@"ピアへのデータ送信エラー: %@", [errorTransmit localizedDescription]); プログラム受信信号「EXC_BAD_ACCESS」を受信して​​います。そのため、何が起こっているのかわかりません。

4

2 に答える 2

0

私はまだGameCenterの断片を使用していないことを告白する必要がありますが、一般的なアプローチとして、エラーが生成されているかどうかを確認することをお勧めします。そのため、次のようなものを使用する場合...

NSError *transmissionError;

[myMatch sendDataToAllPlayers: packet
                 withDataMode: GKMatchSendDataUnreliable
                        error: &transmissionError];

if(transmissionError != nil) {
   NSLog(@"Transmission error: %@", transmissionError);
}

...何が問題になっているのかがわかるかもしれません。

ちなみに、私は現在コンパイラから離れているので、上記のタイプミスについてお詫びします。:-)

于 2010-12-30T16:47:18.840 に答える
0

ここでは何も問題はありません。次のコードを使用しています。

NSData *data = nil;
NSError *error = nil;
int packet = 777;
data = [[NSData alloc] initWithBytes:&packet length:sizeof(int)];
[self.mMatch sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable: &error];

そしてそれは動作します

于 2011-11-15T15:52:32.060 に答える