Twitter @HigenekoTwitter #XNA
今日は招待サンプルを紹介します。
Xbox Live!の機能のひとつに、フレンドリスト内の友達と一緒にネットワークゲームをプレイしたいときに誘える招待機能があります。XNA GS 3.0ではこの招待機能がサポートされています。招待するケースとしては以下の二つのケースがあります。
XNA GS 3.0上では、このどちらのケースでもNetworkSession.InviteAcceptedイベントが発生します。このイベントを受け取った時に、NetworkSession.JoinInviteメソッドを呼ぶことで招待された側が招待した側のセッションに接続できるようになっています。以下はイベントハンドラへの登録と、ハンドラ内での処理の例です。
NetworkSession.InviteAccepted += InviteAcceptedEventHandler;
void InviteAcceptedEventHandler(object sender, InviteAcceptedEventArgs e) { // 現在のセッションから抜ける if (networkSession != null) { networkSession.Dispose(); networkSession = null; } // 招待されたセッションに入る networkSession = NetworkSession.JoinInvited(maxLocalGamers); }
同じゲームをプレイしている場合は、通常のNetworkSessionの振る舞いと殆ど同じですが、違うゲームをプレイしている場合は振る舞いの仕方が変わってきます。ただし、これらの処理は全てOS側で行われるのでゲーム開発者は前述のInviteAcceptedイベントの実装をするだけです。
テスト時の注意
招待機能はXbox Live!の機能なので、ネットワークゲームのテストの様にシステムリンク(ローカル)を使ってテストできるのと違い、クリエータークラブ会員になっているゲーマータグが二つ必要なことに注意してください。
PingBack from http://www.xna-today.jpn.org/2008/12/02/creators-club-online-%e3%81%ab%e8%bf%bd%e5%8a%a0%e3%81%95%e3%82%8c%e3%81%9f%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e7%b4%b9%e4%bb%8b/