gpg:: TurnBasedMultiplayerManager
#include <turn_based_multiplayer_manager.h>
擷取、修改及建立 TurnBasedMatch
物件。
摘要
公開類型 |
|
---|---|
MatchInboxUICallback
|
typedefstd::function< void(const MatchInboxUIResponse &)>
定義可從 ShowMatchInboxUI 接收 MatchInboxUIResponse 的回呼。 |
MultiplayerStatusCallback
|
typedefstd::function< void(MultiplayerStatus)>
定義可用於接收 MultiplayerStatus 的回呼。 |
PlayerSelectUICallback
|
typedefstd::function< void(const PlayerSelectUIResponse &)>
定義可從 ShowPlayerSelectUI 接收 PlayerSelectUIResponse 的回呼。 |
TurnBasedMatchCallback
|
typedefstd::function< void(const TurnBasedMatchResponse &)>
定義可用於從回合製多人遊戲作業中接收 TurnBasedMatchResponse 的回呼。 |
TurnBasedMatchesCallback
|
typedefstd::function< void(const TurnBasedMatchesResponse &)>
定義回呼,可從其中一個回合製多人對戰遊戲中接收 TurnBasedMatchesResponse 。 |
公開靜態屬性 |
|
---|---|
kAutomatchingParticipant
|
const MultiplayerParticipant
可以傳遞到接受「下一個參與者」的方法。
|
結構 |
|
---|---|
gpg:: |
針對 |
gpg:: |
針對 |
gpg:: |
特定 |
gpg:: |
|
公開類型
MatchInboxUICallback
std::function< void(const MatchInboxUIResponse &)> MatchInboxUICallback
定義可從 ShowMatchInboxUI
接收 MatchInboxUIResponse
的回呼。
MultiplayerStatusCallback
std::function< void(MultiplayerStatus)> MultiplayerStatusCallback
定義可用於接收 MultiplayerStatus 的回呼。
由 StayMatch 和取消 Match 函式使用。
PlayerSelectUICallback
std::function< void(const PlayerSelectUIResponse &)> PlayerSelectUICallback
定義可從 ShowPlayerSelectUI
接收 PlayerSelectUIResponse
的回呼。
TurnBasedMatchCallback
std::function< void(const TurnBasedMatchResponse &)> TurnBasedMatchCallback
定義可用於從回合製多人遊戲作業中接收 TurnBasedMatchResponse
的回呼。
TurnBasedMatchesCallback
std::function< void(const TurnBasedMatchesResponse &)> TurnBasedMatchesCallback
定義回呼,可從其中一個回合製多人對戰遊戲中接收 TurnBasedMatchesResponse
。
公開靜態屬性
kAutomatchingParticipant
const MultiplayerParticipant kAutomatchingParticipant
可以傳遞到接受「下一個參與者」的方法。
如此一來,此方法會透過自動配對選取下一位參與者。只有在相關比對的 TurnBasedMatch::AutomatchingSlotsAvailable 大於 0 時,才將 kAutomatchingParticipant 傳遞至函式。
公用函式
AcceptInvitation
void AcceptInvitation( const MultiplayerInvitation & invitation, TurnBasedMatchCallback callback )
以非同步方式接受 MultiplayerInvitation
,並透過 TurnBasedMatchCallback
傳回結果。
如果作業成功,透過回呼傳回的 TurnBasedMatch
會處於 TurnBasedMatchState::MY_TURN
狀態。
AcceptInvitationBlocking
TurnBasedMatchResponse AcceptInvitationBlocking( Timeout timeout, const MultiplayerInvitation & invitation )
AcceptInvitation 的封鎖版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
AcceptInvitationBlocking
TurnBasedMatchResponse AcceptInvitationBlocking( const MultiplayerInvitation & invitation )
AcceptInvitationBlocking 的超載,預設逾時時間為 10 年。
CancelMatch
void CancelMatch( const TurnBasedMatch & match, MultiplayerStatusCallback callback )
非同步取消比對。
透過 MultiplayerStatusCallback
傳回的狀態會指出作業是否成功。比對狀態必須是 INVITED、theIR_TURN 或 MY_TURN,才能使用這項功能。
CancelMatchBlocking
MultiplayerStatus CancelMatchBlocking( Timeout timeout, const TurnBasedMatch & match )
封鎖的 CancelMatch 版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
CancelMatchBlocking
MultiplayerStatus CancelMatchBlocking( const TurnBasedMatch & match )
CancelMatch 的超載,使用 10 年的預設逾時時間。
ConfirmPendingCompletion
void ConfirmPendingCompletion( const TurnBasedMatch & match, TurnBasedMatchCallback callback )
確認已結束且正在等待本機的比對結果。
只有在 TurnBasedMatch::Status()
傳回 MatchStatus::PENDING_COMPLETION
時才能呼叫此函式。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
ConfirmPendingCompletionBlocking
TurnBasedMatchResponse ConfirmPendingCompletionBlocking( Timeout timeout, const TurnBasedMatch & match )
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
ConfirmPendingCompletionBlocking
TurnBasedMatchResponse ConfirmPendingCompletionBlocking( const TurnBasedMatch & match )
ConfirmPendingCompletionBlocking (確認完成封鎖) 的逾時時間預設為 10 年。
CreateTurnBasedMatch
void CreateTurnBasedMatch( const gpg::TurnBasedMatchConfig & config, TurnBasedMatchCallback callback )
使用提供的 TurnBasedMatchConfig
以非同步方式建立 TurnBasedMatch
。
如果建立成功,這個函式會透過提供的 TurnBasedMatchCallback
傳回 TurnBasedMatch
。新建立的 TurnBasedMatch
一律會以 TurnBasedMatchState::MY_TURN
狀態啟動。
CreateTurnBasedMatchBlocking
TurnBasedMatchResponse CreateTurnBasedMatchBlocking( Timeout timeout, const gpg::TurnBasedMatchConfig & config )
CreateTurnBasedMatch 的封鎖版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
CreateTurnBasedMatchBlocking
TurnBasedMatchResponse CreateTurnBasedMatchBlocking( const gpg::TurnBasedMatchConfig & config )
CreateTurnBasedMatchBlocking 的超載,使用的預設逾時時間為 10 年。
DeclineInvitation
void DeclineInvitation( const MultiplayerInvitation & invitation )
將 MultiplayerInvitation
拒絕為 TurnBasedMatch
。
這麼做會取消其他參與者的配對,並從本機玩家裝置中移除比對。
DismissInvitation
void DismissInvitation( const MultiplayerInvitation & invitation )
關閉對 TurnBasedMatch
的 MultiplayerInvitation
。
這個動作不會變更其他參與者的 TurnBasedMatch
顯示狀態,但會從本機玩家的裝置中移除 TurnBasedMatch
。
DismissMatch
void DismissMatch( const TurnBasedMatch & match )
關閉 TurnBasedMatch
。
這個動作不會變更其他參與者的 TurnBasedMatch
顯示狀態,但會從本機玩家的裝置中移除 TurnBasedMatch
。
FetchMatch
void FetchMatch( const std::string & match_id, TurnBasedMatchCallback callback )
以 ID 非同步擷取特定相符項目。
這項作業的結果會透過 TurnBasedMatchCallback
傳回。
FetchMatchBlocking
TurnBasedMatchResponse FetchMatchBlocking( Timeout timeout, const std::string & match_id )
封鎖的 FetchMatch 版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
FetchMatchBlocking
TurnBasedMatchResponse FetchMatchBlocking( const std::string & match_id )
FetchMatchBlocking 的超載,使用的預設逾時時間為 10 年。
FetchMatches
void FetchMatches( TurnBasedMatchesCallback callback )
以非同步方式擷取目前玩家的 TurnBasedMatch
和 Invitation
物件。
系統會傳回所有進行中的比賽,以及最多 10 個已完成的相符項目。
FetchMatchesBlocking
TurnBasedMatchesResponse FetchMatchesBlocking( Timeout timeout )
封鎖的 FetchMatches 版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
FetchMatchesBlocking
TurnBasedMatchesResponse FetchMatchesBlocking()
FetchMatchesBlocking 超載,使用的預設逾時時間為 10 年。
FinishMatchDuringMyTurn
void FinishMatchDuringMyTurn( const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, TurnBasedMatchCallback callback )
以非同步方式完成指定的比對。
在最終回合期間,你可以改用 TakeMyTurn 這個表情符號。允許呼叫端指定 match_data
的最終值,以及 ParticipantResults
的最終值。這項作業完成後,會透過提供的 TurnBasedMatchCallback.
傳回更新後的比對項目。只有在 TurnBasedMatch::Status()
傳回 MatchStatus::MY_TURN.
時,才能呼叫此函式
詳細說明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
FinishMatchDuringMyTurnBlocking
TurnBasedMatchResponse FinishMatchDuringMyTurnBlocking( Timeout timeout, const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results )
封鎖 FinishMatchDuringMyTurn 版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
FinishMatchDuringMyTurnBlocking
TurnBasedMatchResponse FinishMatchDuringMyTurnBlocking( const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results )
FinishMatchDuringMyTurnBlocking 的超載,預設逾時時間為 10 年。
LeaveMatchDuringMyTurn
void LeaveMatchDuringMyTurn( const TurnBasedMatch & match, const MultiplayerParticipant & next_participant, MultiplayerStatusCallback callback )
在本機參與者轉彎時以非同步方式離開。
透過 TurnBasedMatchCallback
傳回的回應會包含本機玩家消失後的對戰狀態。如果這個出發時間與參與者少於兩人,對戰就會取消。match.Status()
必須傳回 MatchStatus::MY_TURN
,這個函式才能使用。
詳細說明 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
LeaveMatchDuringMyTurnBlocking
MultiplayerStatus LeaveMatchDuringMyTurnBlocking( Timeout timeout, const TurnBasedMatch & match, const MultiplayerParticipant & next_participant )
封鎖 LeaveMatchDuringMyTurn 的版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
LeaveMatchDuringMyTurnBlocking
MultiplayerStatus LeaveMatchDuringMyTurnBlocking( const TurnBasedMatch & match, const MultiplayerParticipant & next_participant )
LeaveMatchDuringMyTurnBlocking 的超載,其預設逾時時間為 10 年。
LeaveMatchDuringTheirTurn
void LeaveMatchDuringTheirTurn( const TurnBasedMatch & match, MultiplayerStatusCallback callback )
在其他參與者轉彎時,以非同步方式離開比賽。
透過 MultiplayerStatusCallback
傳回的回應會包含本機參與者是否成功退出比對。如果這個出發時間與參與者少於兩人,對戰就會取消。match.Status()
必須傳回 MatchStatus::THEIR_TURN
,這個函式才能使用。
LeaveMatchDuringTheirTurnBlocking
MultiplayerStatus LeaveMatchDuringTheirTurnBlocking( Timeout timeout, const TurnBasedMatch & match )
封鎖 LeaveMatchDuringTheirTurn 版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
LeaveMatchDuringTheirTurnBlocking
MultiplayerStatus LeaveMatchDuringTheirTurnBlocking( const TurnBasedMatch & match )
LeaveMatchDuringTheirTurnBlocking 的超載,預設逾時時間為 10 年。
再玩一局
void Rematch( const TurnBasedMatch & match, TurnBasedMatchCallback callback )
重新比對狀態為 MatchStatus::COMPLETED 的相符項目。
如果可以重新比對,TurnBasedMatchCallback
會收到新的比對結果。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
RematchBlocking
TurnBasedMatchResponse RematchBlocking( Timeout timeout, const TurnBasedMatch & match )
Rematch 的封鎖版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
RematchBlocking
TurnBasedMatchResponse RematchBlocking( const TurnBasedMatch & match )
RematchBlocking 的超載,預設逾時時間為 10 年。
ShowMatchInboxUI
void ShowMatchInboxUI( MatchInboxUICallback callback )
以非同步方式顯示比對收件匣的 UI,讓玩家選取對戰或邀請。
完成後,所選比賽或邀請會透過 MatchInboxUICallback
傳回。
ShowMatchInboxUIBlocking
MatchInboxUIResponse ShowMatchInboxUIBlocking( Timeout timeout )
封鎖 ShowMatchInboxUI 的版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
ShowMatchInboxUIBlocking
MatchInboxUIResponse ShowMatchInboxUIBlocking()
ShowMatchInboxUIBlocking 的超載,預設逾時時間為 10 年。
ShowPlayerSelectUI
void ShowPlayerSelectUI( uint32_t minimum_players, uint32_t maximum_players, bool allow_automatch, PlayerSelectUICallback callback )
以非同步方式顯示玩家選擇的 UI,讓玩家能選取其他玩家來對戰。
完成後,所選玩家將透過 PlayerSelectUICallback
返回。
ShowPlayerSelectUIBlocking
PlayerSelectUIResponse ShowPlayerSelectUIBlocking( Timeout timeout, uint32_t minimum_players, uint32_t maximum_players, bool allow_automatch )
ShowPlayerSelectUI 的封鎖版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
ShowPlayerSelectUIBlocking
PlayerSelectUIResponse ShowPlayerSelectUIBlocking( uint32_t minimum_players, uint32_t maximum_players, bool allow_automatch )
ShowPlayerSelectUIBlocking 超載,預設逾時時間為 10 年。
SynchronizeData
void SynchronizeData()
強制同步處理 TBMP 比對資料與伺服器。
收到新資料時,會觸發 OnTurnBasedMatchEventCallback
或 OnMultiplayerInvitationReceivedCallback
。
TakeMyTurn
void TakeMyTurn( const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, const MultiplayerParticipant & next_participant, TurnBasedMatchCallback callback )
以非同步方式接管本機參與者。
轉彎時,參與者可以為 match_data
和一組 ParticipantResults
指定新的值。轉彎後,系統會透過 TurnBasedMatchCallback
傳回更新的比對項目。只有在 TurnBasedMatch::Status()
為 MatchStatus::MY_TURN
時才能呼叫此函式。
詳細說明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
TakeMyTurnBlocking
TurnBasedMatchResponse TakeMyTurnBlocking( Timeout timeout, const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, const MultiplayerParticipant & next_participant )
封鎖 TakeMyTurn 版本。
允許呼叫端指定逾時 (以毫秒為單位)。指定的時間過後,函式會傳回 ERROR_TIMEOUT
。
TakeMyTurnBlocking
TurnBasedMatchResponse TakeMyTurnBlocking( const TurnBasedMatch & match, std::vector< uint8_t > match_data, const ParticipantResults & results, const MultiplayerParticipant & next_participant )
TakeMyTurnBlocking 的超載,預設逾時為 10 年。