活動
設定活動
每當遊戲開始或加入多人遊戲體驗時,都應建立活動。這麼做可讓殼層以及您遊戲中的其他玩家看到該玩家的活動,並讓其他玩家有可能加入進行中的遊戲。如果玩家想要加入您遊戲的活動,而遊戲並未執行,遊戲會被啟用並傳入連線字串。 遊戲應在玩家加入或離開時更新活動。這可為其他玩家提供更豐富的活動檢視,並告知他們活動是否已滿。 如需活動欄位的相關資訊,請參閱活動內容。 以下是設定活動的程式碼範例。它適用於建立活動以及更新現有的活動。- XAsyncBlock
- XAsyncGetStatus
- XblMultiplayerActivityInfo
- XblMultiplayerActivityJoinRestriction
- XblMultiplayerActivitySetActivityAsync
取得活動
遊戲可能會想要知道其他玩家的活動。例如,遊戲可能會想要在遊戲內 UI 中顯示玩家在該遊戲中的好友及其活動。 以下是擷取活動的程式碼範例。- XAsyncBlock
- XblMultiplayerActivityGetActivityResultSize
- XblMultiplayerActivityInfo
- XblMultiplayerActivityGetActivityResult
- XblMultiplayerActivityGetActivityAsync
刪除活動
當玩家結束或離開多人遊戲活動時,遊戲應使用下列程式碼刪除活動。邀請
在沒有 UI 的情況下傳送邀請
玩家可能會想要直接傳送邀請給一或多位其他玩家。在傳送邀請之前,遊戲應確保已設定活動。這可確保殼層與您的遊戲之間的連續性,因為殼層會根據目前的活動傳送邀請。 若要在沒有 UI 的情況下傳送邀請,在使用 XblMultiplayerActivitySetActivityAsync 設定活動之後 (請參閱上方範例),遊戲應呼叫 XblMultiplayerActivitySendInvitesAsync API,並傳遞要邀請的玩家陣列,以及您目前活動中使用的相同連線字串。 如需邀請內容的相關資訊,請參閱傳送要求讓另一位玩家加入多人遊戲體驗。。 以下是在沒有 UI 的情況下傳送邀請的程式碼範例。使用 UI 傳送邀請
玩家可能會想要直接傳送邀請給一或多位其他玩家。在傳送邀請之前,遊戲應確保已設定活動。這可確保殼層與您的遊戲之間的連續性,因為殼層會根據目前的活動傳送邀請。 若要使用 UI 傳送邀請,在使用 XblMultiplayerActivitySetActivityAsync 設定活動之後 (請參閱上方範例),遊戲應呼叫 XGameUiShowMultiplayerActivityGameInviteAsync API 並傳入提出要求的使用者。它會使用遊戲目前的活動,並使用其連線字串和設定邀請玩家。 如需邀請內容的相關資訊,請參閱傳送要求讓另一位玩家加入多人遊戲體驗。。 以下是使用 UI 傳送邀請的程式碼範例。- XAsyncBlock
- XAsyncGetStatus
- XGameUiShowMultiplayerActivityGameInviteAsync
- XGameUiShowMultiplayerActivityGameInviteResult
接收邀請
若要在玩家接受邀請時收到通知,遊戲可以使用XGameInviteRegisterForEvent 註冊邀請通知。每次接受邀請時,都會透過註冊的回呼將格式化的 URI 傳遞給遊戲。可以剖析 URI 以判斷邀請傳送者、接收者和連線字串。連線字串是遊戲特定的,並在建立多人遊戲活動時設定。對於使用多人遊戲活動服務的遊戲,URI 的完整格式如下表所示。
當不再需要邀請通知時,可以使用
XGameInviteUnregisterForEvent 取消註冊回呼。以下是註冊和處理已接受邀請的程式碼範例。
最近的玩家
若要更新玩家的最近的玩家清單,遊戲應提交曾與目前玩家有過有意義互動之其他玩家的清單。此清單是單向的,表示每位玩家的用戶端負責更新自己的清單,玩家的清單不會影響彼此的清單。 例如,假設一群玩家一起位於賽前大廳中並被配對在一起。比賽開始時,每位玩家都會以大廳中所有其他xuids 更新其清單。如果有新玩家加入,可以個別寫入。
您可以決定什麼構成有意義的互動。對某個遊戲而言,可能是出現在大廳中。對另一個遊戲而言,可能是某位玩家射擊另一位玩家。對第三個遊戲而言,可能只是畫面上看得到另一位玩家。
XblMultiplayerActivityFlushRecentPlayersAsync。否則,最近的玩家清單會每五秒自動排清一次。
以下是更新最近的玩家清單和排清更新的程式碼範例。
