iOS Development: Quando si riceve un invito Game Center, come faccio a ottenere l'oggetto GKMatch?

StackOverflow https://stackoverflow.com/questions/4638046

Domanda

Sto costruendo un gioco per iPhone che utilizza il Game Center e sto avendo difficoltà a capire come iniziare un gioco match che è stato avviato da ricevere un invito a giocare da un amico. Il rel docs dicono che questo ...

  

Il parametro è acceptedInvite   non nullo quando l'applicazione riceve   un invito direttamente da un altro   giocatore. In questa situazione, l'altra   applicazione del giocatore ha già   ha creato la richiesta di incontro, quindi questo   copia della domanda non ha bisogno   per creare uno.

In base a questo, non ho bisogno di creare una richiesta di incontro da quando il giocatore che ha fatto l'invitante quello già creato. Se sì, come posso ottenere l'oggetto GKMatch necessario per inviare / ricevere dati da / per l'altro giocatore? L'unico modo che conosco per ottenere l'oggetto GKMatch è quello di creare una richiesta di incontro e chiamare il metodo findMatchForRequest, che la documentazione da dire che non dovrei fare.

L'unico esempio di codice che hanno per questo comporta la creazione e l'utilizzo del GKMatchmakerViewController, che non posso usare dal momento che sto creando le mie viste personalizzate.

Grazie mille per la tua saggezza!

È stato utile?

Soluzione

Ho ricevuto una risposta da uno degli ingegneri di Apple su questo, ecco cosa ha detto ...

  

Si può fare auto-matching con l'abitudine   viste, ma non v'è alcun modo per l'uso   invita senza utilizzare   GKMatchmakerViewController. Quindi tu   dovrebbe seguire l'esempio di codice.

Credo che ci sta solo andando ad avere per essere una rottura radicale nella consistenza della mia UI.

Altri suggerimenti

Ho una correzione per il centro gioco invito problema. Quindi, attenersi alla seguente procedura: -
1- verifica che le tue notifiche push sono nelle impostazioni e amico inviti sono nel vostro gioco impostazione conto centro.
2-ora installare l'ultima versione di Fruit Ninja gioco
3-aperto centro di gioco e segno, poi metterlo in background.
4-aperto Fruit Ninja goto direttamente nuovo gioco => multigiocatore => GameCenter
5-ora vedrete due opzioni (invitare amico e gioca ora nell'angolo in alto a destra)
6-ha colpito il gioco ora pulsante, in modo che il centro di gioco sarà trovare il gioco non invitato per voi.
7-Quando il gioco inizia e si è in grado di vedere il nome del tuo amico non invitato in alto a destra. Al termine del gioco, passare direttamente al centro di gioco in background e nella sezione dei giochi e andare in ninja frutta in lista dei giochi. Qui potrete vedere l'opzione di recente giocato, toccarlo. Qui potrete vedere in cima alla lista un nome del giocatore (che hai giocato con) toccare il nome e mandarlo subito richiesta di amicizia.
8-se accetta amici richiesta goto => (tuo amico recentemente aggiunto) => gameplayed insieme (frutta Ninja) => calo di gioco (in alto a destra)
9-ora il gioco si aprirà e si vedrà la pagina di GC. Premi il pulsante invitare e scegliere l'amico recentemente aggiunto, e quindi inviare, in attesa che lui e pronto a giocare.

Ora il vostro GC id hanno verificato ed è possibile invitare uno dei tuoi amici e può giocare a qualsiasi gioco (che supporta la funzione di invito)

Nonostante quello che ha detto l'ingegnere di Apple, che ne dite di provare qualcosa di simile per invitare senza l'utilizzo di una visualizzazione personalizzata:

[[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) {



[GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error) {
    for (GKPlayer *player in players) {
        NSLog(@"%@",player.alias); //here I'm just logging the aliases but the array players can be used in any way
    }
}];

}];

Ora, se i giocatori un utente seleziona da questo elenco in una visualizzazione personalizzata, GKMatchRequest ha una proprietà chiamata playersToInvite e possiamo impostare questi giocatori a quella proprietà. E creare una corrispondenza a livello di codice utilizzando questa richiesta.

Questo sembra molto probabile, ma non ho provato ad essere onesti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top