2

gamecenter を使用してターン ベースの iOS ゲームを書いていますが、部分的に埋められたゲームに現在座っている全員を見つけるのに問題があります。マッチの参加者の配列を調べて、着席しているプレイヤーを引き出すにはどうすればよいですか? 常に [1,8] 人のプレイヤーがゲームに参加しており、ロビーにそれらのプレイヤーを配置しようとしています。

4

2 に答える 2

2

「GKTurnBasedMatch」カテゴリ用に作成した 2 つの便利なメソッドを次に示します。

@implementation GKTurnBasedMatch (Convenience)

- (NSArray *) remainingPlayingParticipants;
{
    NSMutableArray *participants = [NSMutableArray array];

    // start searching at the current player
    NSUInteger currentIndex = [self.participants indexOfObject:self.currentParticipant];

    for (int i = 0; i < [self.participants count]; i++)
    {
        GKTurnBasedParticipant *part = [self.participants objectAtIndex:(currentIndex + 1 + i)
                                                                        % self.participants.count];
        if (part.matchOutcome == GKTurnBasedMatchOutcomeNone)
        {
            [participants addObject:part];
        }
    }

    return [NSArray arrayWithArray:participants];
}


- (NSArray *) remainingPlayingAndMatchedOpponents;
{
    NSMutableArray *participants = [NSMutableArray array];
    GKTurnBasedParticipant *localParticipant = [self localParticipant];

    // start searching at the current player
    NSUInteger currentIndex = [self.participants indexOfObject:self.currentParticipant];

    for (int i = 0; i < [self.participants count]; i++)
    {
        GKTurnBasedParticipant *part = [self.participants objectAtIndex:(currentIndex + 1 + i)
                                        % self.participants.count];
        if (part.matchOutcome == GKTurnBasedMatchOutcomeNone
            && part.status == GKTurnBasedParticipantStatusActive
            && part != localParticipant)
        {
            [participants addObject:part];
        }
    }

    return [NSArray arrayWithArray:participants];
}
@end
于 2013-05-10T10:47:40.940 に答える
1

編集:

これら 2 つのリンクのチュートリアルに従ってください。これで準備完了です。

パート 1 -パート 2

つまり、すべてGKTurnBasedMatchのオブジェクトには、filled with objectsというNSArrayプロパティがあります。この配列をループして、ゲームのすべての参加者を確認できます。参加者が積極的に着席しているか辞退しているかなどを確認するために、これらのインスタンス (種類の ) のプロパティを確認するのが賢明です。これがお役に立てば幸いです。participantsGKTurnBasedMatchParticipantstatusGKTurnBasedParticipantStatus

于 2013-05-10T05:08:18.863 に答える