marsrover
marsrover

Reputation: 715

End a turn in Game Center turn based match.

I´m having troubles with ending turns in my turn based game app.

The method I´m using is

GKTurnBasedMatch *currentMatch = [[GCTurnBasedMatchHelper sharedInstance] currentMatch];

[currentMatch endTurnWithNextParticipants:p turnTimeout:1000 matchData:data completionHandler:^(NSError *error) {
            if (error) {
                NSLog(@"%@", error);
            }
        }];

Here p is my NSArray for nextParticipants and this is my declaration for it: and this is the declaration and assignment for

NSArray *p = [[currentMatch.participants reverseObjectEnumerator] allObjects];

I´m reversing the participants array to get the turn order of the players. (Only 2)

This all compile and runs without an error, but the turn never actually passes to the other player!

Thinking my p-array is the problem I´ve tried passing it without reversing it which produced the same result.

Does anyone know the correct way to handle this?

Upvotes: 1

Views: 327

Answers (1)

coder1_7
coder1_7

Reputation: 63

Replace your code with

GKTurnBasedMatch *currentMatch = [[GCTurnBasedMatchHelper sharedInstance] currentMatch];

GKTurnBasedParticipant *nextPerson = [currentMatch.participants objectAtIndex:((currentIndex + 1) % [currentMatch.participants count])];

[currentMatch endTurnWithNextParticipants:[NSArray arrayWithObject:nextPerson] turnTimeout:1000 matchData:matchData completionHandler:^(NSError *error) {
    if (error) {
        NSLog(@"%@", error);
    }
}];

Upvotes: 4

Related Questions