読者です 読者をやめる 読者になる 読者になる

エンジニアリングにはほど遠い

iPhoneアプリとかサイトとかをつくっていくブログです。

-(BOOL)match: shouldReInvitePlayer: の意味が分かってきた

結論から言うとこれは、「友達招待によって成立した1対1の」マッチが切断した際に、復帰用の通知を出すか否かを設定するメソッドだと思います。

なんか再接続できそうな名前のメソッドだという事でこれをいじっていたんですが、
どうやら、通常のマッチングでは使えないという事が分かってきました。そもそもInviteという考え方が友人招待だけを指しているみたいです。
その事に気がつくのに時間がかかりました。

このメソッドで返り値をtrueにした後、
通信状態時にホームボタンでホームに行ってマッチを切断させると通知が出てきました。
押すと、(起動してなかったら)アプリが起動してinviteHandlerで登録しているBlock関数の中にacceptedInvite!=nilで入りました。
あとはその中で、そのacceptedInviteから生成したGKMatchMakerViewControllerをmodalViewControllerしてやれば再接続できます。
少し感動しました。

しかし少し謎なのが、切断したら両プレーヤーに通知が出る(切断した側に出て、そいつが通知を押すとその相手に出る)んですが、切断された側は通知を押さずともそのまま復帰できます。というか余計な事はしない方がいいです。
なので、切断された側は通知を押してinviteHandlerの中のBlock関数に入った時に余計な事はしない、という風に処理をする必要があると思いました。

しかしコレはなんか不自然なんで何か間違ってるのかも・・・。

このメソッドの情報がほとんどなかったんですが、こんなややこしくて限定的状況で使うメソッドなのでやむなしだと思いました。

この記事自体誰特な匂いがします。
そもそも友人機能にあまり興味ないしなぁ・・ RPGとか作ったら面白いのかな。

GameCenterの話をあまり聞かないんですが、
自分はまだまだGameCenterを利用したアプリを作りたいですね〜。