2017-02-15 3 views
1

Game Center документация говоритПрограммно найти список существующих пошаговых матчей в Game Center?

Если отобразить стандартный пользовательский интерфейс сватовства, то игрок видит существующие матчи, а также.

Это не объясняет, есть ли способ показать существующие совпадения в программно-генерируемом пользовательском интерфейсе.

Это возможно?

ответ

1

Нет API, чтобы найти список всех существующих совпадений на сервере или даже найти все совпадения, ожидающие игроков. Есть только две связанные вещи, которые вы можете сделать, сквозь GameKit API:

1.Use следующее, чтобы найти ни одного матча, который отвечает требованиям по запросу матча:

[GKTurnBasedMatch findMatchForRequest:request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error) 
{ 

}; 

2.Load все матчи игрок ранее присоединился и, таким образом, уже лично знал.

[GKTurnBasedMatch loadMatchesWithCompletionHandler:^(NSArray *matches, NSError *error) 
{ 

}]; 

В качестве альтернативы, вы могли бы рассмотреть возможность использования от Apple CloudKit (или любое другое фонового облако хранения) в дополнении к Game Center сохраняться списком совпадений. Каждый раз, когда игрок создает новое совпадение, вы можете сохранить запись в общедоступной базе данных с идентификатором соответствия и другими соответствующими данными по своему усмотрению и сохранить свой собственный список всех существующих сеансов. Вам также нужно будет удалить эти записи, когда заканчивается матч.

0

Я так и не понял, как это сделать (стратегия, предлагаемая Thunk, кажется хорошей, хотя), но в случае, если кто-то пытается достичь тех же целей, это то, что я закончил делать.

Моя конечная цель состояла в том, что если бы два игрока искали совпадение примерно в одно и то же время, я хотел, чтобы они были уверены, что они соединяются друг с другом, а не каждый из них имеет разные пустые совпадения.

Я думал, что единственный способ сделать это - получить список открытых матчей, но это немного легче, чем это.

Ключ в том, что игроки, ищущие совпадения, связаны только с существующими совпадениями , если все в этих матчах уже вступили в свою очередь. Game Center хочет, чтобы вы могли сразу же отложить свою очередь, как только вы подключились к матчу, так что он никогда не будет служить вам в матче, ожидающем, когда кто-то еще сыграет.

Таким образом, я сделал любого игрока, которому дано пустое совпадение. немедленно заканчивают свою очередь. Это делает матч доступным для заполнения любым другим игроком.

Это работает очень хорошо. Не все время, но довольно часто.

Конечно, после того, как игроки подключены, мне нужно разобраться, чей поворот действительно есть, что совсем другое, но в конце концов это не так уж сложно.