- Criando uma API simples de chamar.
- Gerando informações atualizadas usando o serviço Real-Time Activity em segundo plano.
- Permitindo que os desenvolvedores chamem a API Achievements Manager de forma síncrona sem nenhuma carga extra no serviço.
Recursos
O Achievements Manager fornece os seguintes recursos:- API de conquistas simplificada
- Estado e progresso das conquistas atualizados para cada usuário
- Redução do número de chamadas aos serviços XBOX
- Isso se correlaciona diretamente com a redução geral da latência na aquisição de dados
- Thread-safe
- Manutenção eficiente dos dados atualizados
Conceitos principais
Conquistas: uma conquista inclui gamerscore e outras recompensas, como arte digital, novos mapas, personagens e aprimoramentos de estatísticas, além do progresso atual para a conclusão. Para manter atualizado o estado das conquistas de um usuário, a função XblAchievementsManagerDoWork deve ser chamada a cada quadro.No Windows, só pode haver um usuário local
Visão geral da API
Você usará com mais frequência as seguintes APIs principais. Você pode encontrar uma descrição completa das APIs do Achievements Manager na referência da API do XBOX Live. Você também pode encontrar as APIs na documentação do prefixo XblAchievementsManager.Adicionando usuários locais ao Achievements Manager
- Função da API C: XblAchievementsManagerAddLocalUser
Obtendo o estado das conquistas de um usuário
- Função da API C: XblAchievementsManagerGetAchievements
Uso
Usando eventos do Achievements Manager
O Achievements Manager informa o que aconteceu na forma de eventos. Você pode usar esses eventos para atualizar sua interface do usuário ou executar outra lógica. API CEventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
- API C: XblAchievementsManagerEventType::AchievementProgressUpdated
- API C: XblAchievementsManagerEventType::AchievementUnlocked
Detalhes adicionais
Em vez de buscar o estado das conquistas no serviço com frequência durante o loop do jogo, o Achievements Manager busca o estado de todas as conquistas de um usuário quando o usuário é registrado no Achievements Manager. Em seguida, o Achievements Manager recebe eventos do serviço que detalham as atualizações das conquistas de um usuário, que são então encaminhados ao título como events retornados pela função * XblAchievementsManagerDoWork. events é uma lista de XblAchievementsManagerEvent, e cada XblAchievementsManagerEvent contém uma alteração em uma conquista que ocorreu durante o último quadro. Mais informações podem ser encontradas na documentação da API XblAchievementsManagerEvent.Registrar um usuário cujas conquistas serão acompanhadas
Neste cenário, você deseja registrar um usuário no Achievements Manager para começar a acompanhar as atualizações das conquistas desse usuário e armazenar em cache localmente o estado de todas essas conquistas. API CEventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
Detalhes adicionais
O exemplo acima mostra como inicializar o Achievements Manager para um usuário e mantê-lo atualizado. No loop do jogo, a função XblAchievementsManagerDoWork processa e aplica todas as atualizações feitas nas conquistas dos usuários.Recuperando uma única conquista de um usuário
Neste cenário, você deseja obter o estado de uma única conquista de um usuário. API C- XblAchievement
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievement
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
Eventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
Recuperando todas as conquistas de um usuário
Neste cenário, você deseja obter o estado de todas as conquistas de um usuário. API C- XblAchievement
- XblAchievementOrderBy
- XblAchievementsManagerSortOrder
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievements
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
Eventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
Recuperando um subconjunto de conquistas de um usuário
Neste cenário, você deseja obter o estado de um subconjunto de conquistas de um usuário. API C- XblAchievement
- XblAchievementOrderBy
- XblAchievementsManagerSortOrder
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievements
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
Eventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
Recuperando um subconjunto de conquistas em um estado específico de um usuário
Neste cenário, você deseja obter o estado de um subconjunto de conquistas em um estado de progresso específico de um usuário. API C- XblAchievement
- XblAchievementOrderBy
- XblAchievementProgressState
- XblAchievementsManagerSortOrder
- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerGetAchievementsByState
- XblAchievementsManagerResultGetAchievements
- XblAchievementsManagerResultCloseHandle
Eventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
Atualizando uma conquista de um usuário
Atualiza o progresso de uma conquista de um usuário. API C- XblAchievementsManagerAddLocalUser
- XblAchievementsManagerIsUserInitialized
- XblAchievementsManagerUpdateAchievement
Eventos retornados
Local User Initial State Synced: disparado quando o Achievements Manager termina de buscar o estado atual de todas as conquistas do título atual para o usuário.- API C: XblAchievementsManagerEventType::LocalUserInitialStateSynced
