2011-01-15 6 views
0

私はゲームセンターのマルチプレイヤーのための私のiPhoneゲームでintを送信しようとしています。Int長い奇妙な値として表示

整数は、期待されている値ではなく、奇数の整数値として現れています。

私は私の.hでこれを持っている。そして、

typedef enum 
{ 
kPacketTypeScore, 
} EPacketTypes; 

typedef struct 
{ 
EPacketTypes type; 
size_t size; 
} SPacketInfo; 

typedef struct 
{ 
SPacketInfo packetInfo; 

int score; 
} SScorePacket; 

.M:

scoreData *score = [scoreData sharedData]; 

    SScorePacket packet; 
    packet.packetInfo.type = kPacketTypeScore; 
    packet.packetInfo.size = sizeof(SScorePacket); 
    packet.score = score.score; 

    NSData* dataToSend = [NSData dataWithBytes:&packet length:packet.packetInfo.size]; 
    NSError *error; 
    [self.myMatch sendDataToAllPlayers: dataToSend withDataMode: GKMatchSendDataUnreliable error:&error]; 
    if (error != nil) 
    { 
    // handle the error 
    } 

は、受信:

SPacketInfo* packet = (SPacketInfo*)[data bytes]; 

switch (packet->type) 
{ 
    case kPacketTypeScore: 
    { 
    SScorePacket* scorePacket = (SScorePacket*)packet; 

    scoreData *score = [scoreData sharedData]; 

    [scoreLabel setString:[NSString stringWithFormat:@"You: %d Challenger: %d", score.score, scorePacket]]; 

    break; 
    } 

    default: 
    CCLOG(@"received unknown packet type %i (size: %u)", packet->type, packet->size); 
    break; 
} 

任意のアイデアデータを送信

?ありがとう。

答えて

1

試してみてください。

[scoreLabel setString:[NSString stringWithFormat:@"You: %d Challenger: %d", score.score, scorePacket->score]]; // Note: scorePacket.score 

あなたがイン・ザ・パケットへのポインタ-scorePacket、ないスコアを印刷しようとしていたです。

+0

これは明らかですが、私はこれを受け取ります:エラー:構造体または共用体ではないメンバーの 'score'を要求します –

+1

あなたが言ったことはほとんど 'scorePacket-> score' –

0

必要なscorePacket-> scorePacketではなくscore。間違ったことを印刷する。

関連する問題