[[iPhoneプログラミング一覧]] *目次 [#n972ac2a] #contents *GameKitフレームワーク [#d62d8513] Game Kitは、マルチプレイヤーゲームを始めるためのユーザインターフェースや、ゲームの状態を共有するためのデータ転送APIを提供します。ゲームに実装すると、同じゲームが近くの他のiPhoneやiPod touches上で動作中かどうか自動的に検出し、ユーザはBluetooth経由でそれらの1台に接続して、標準IPベースの通信チャンネルを介してゲームの状態を共有し始めます。自動検出はBonjourによって処理されます。接続のためのペアリングは不要ですので、すべてがシームレスにつながります。 *UIの実現方法2とおり [#ac012f03] -「GKPeerPickerController」を使う方法 -UIを独自に実装する方法 *通信するデータ形式はすべてNSData [#kcd1ee54] 例えば、文字列をNSDataに変換して、受信するには下記のコードのように、 -NSKeyedArchiver -NSKeyedUnarchiver を使います。 **文字列 [#u4f33862] ***送り手 [#n3fac535] NSData *data = [NSKeyedArchiver] archivedDataWithRootObject:@"Hello"]; ***受け手 [#fb070ffc] NSString *s = [NSKeyedUnarchiver unarchiveObjectWithData:data]; **画像 [#v7a6801a] ***送り手 [#tb2668f1] UIImage *image = [UIImage imageNamed:@"foo.jpg"]; NSData *data = UIImageJPEGRepresentation(image); ***受け手 [#i6ad4200] UIImage *image = [UIImage imageWithData:data]; *接続方式 [#if3baa22] **セッション [#w2a019b1] セッションはGameKitが用意する「GKSession」クラスを使って管理します。 セッションIDという識別子で管理します。 セッションには以下の3つのモードがあります。 ***サーバ [#k528585c] クライアントに自分の存在を知らせる(アドバタイズ) ***クライアント [#hffdc831] サーバを探すモード ***ピア [#o96c4fa8] サーバとクライアントの両方 **ピアID [#z8f914f9] ピアIDは接続時にGameKitフレームワークが自動生成します。 型はNSStringです。 *GameKit解説サイト [#d1f7c229] **GameKit Programming Guide [#dee982d2] アップルのサイトです。英語です。 ***URL [#baff4763] http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/GameKit_Guide/Introduction/Introduction.html