SwiftでのGameCenterはじめの一歩。ログインを簡単に行う [Game Center初心者向け] [Swift1.2]
高橋名人もびっくりの連打アプリをGame Centerに対応させようとしてみましたが、私の知識と経験では、Webから得た情報の理解に苦労しています。
その中で以下のページが一番シンプルに「ログインについて」のみ書かれていて分かりやすかったです。
ただ使用言語はObjective Cです。
今回はこれをSwiftに書き換えてみました。
準備
リーダーボードの設定などはiTunes connectであらかじめ済ませておく。 参考ページ
iOS - Game Center機能を実装する - QiitaGameKitフレームワークをプロジェクトに追加
import GameKit
を追加
ログイン認証
ログインしているかどうかの確認をするauthenticateLocalPlayerを作成して、ViewDidLoad で読み込ませる。
class ViewController: UIViewController { /** * 画面を読み込む際の処理 */ override func viewDidLoad() { super.viewDidLoad() self.authenticateLocalPlayer() } /** * GameCenterにログインしているか確認処理 * ログインしていなければログイン画面を表示 */ func authenticateLocalPlayer() { let player = GKLocalPlayer.localPlayer() player.authenticateHandler = {(viewController, error) -> Void in if viewController != nil { self.presentViewController(viewController, animated: true, completion: nil) } } } }
これでログイン動作はすることができました。
しかしここからが問題。今回はViewControllerに実装しましたが、そうなるとログインされるタイミングが管理しきれません。通常は、AppDelegateなどでアプリが非アクティブから復帰した際にもきちんとログインできるようにしなければなりません。が、まだ上手く実装できていません。
スコアの送信なども実装せねばならないし、道のりはなかなか長いです。