开始之前
- 你的产品使用完整的 XBOX 服务功能集。新产品最初只能使用有限的 XBOX 服务,在产品完成加入流程之前,成就和玩家分数不可用。有关详细信息,请参阅请求产品加入以启用完整 XBOX 服务。
- 你已在 Partner Center 中配置成就,并已将 XBOX 服务配置发布到开发沙盒。有关详细信息,请参阅在合作伙伴中心配置游戏管理的成就。
- 你的开发工具包或 Windows 电脑使用相同的开发沙盒,并且你使用有权访问该沙盒的测试帐户登录。有关详细信息,请参阅 XBOX 服务沙盒概述。
- 你的游戏已初始化 Gaming Runtime,然后使用 XblInitArgs 结构调用了 XblInitialize,该结构的
scid成员包含你的服务配置 ID (SCID)。SCID 区分大小写。有关详细信息,请参阅如何使用 XBOX 服务 API。 - 你已登录用户,并通过调用 XblContextCreateHandle 为该用户创建了
XblContextHandle。
获取成就列表
要获取正在运行的作品的成就,请按如下所示调用 XblAchievementsGetAchievementsForTitleIdAsync。调用 XblAchievementsGetAchievementsForTitleIdAsync
C++- XAsyncBlock
- XblAchievement
- XblAchievementProgressState
- XblAchievementsGetAchievementsForTitleIdAsync
- XblAchievementsGetAchievementsForTitleIdResult
- XblAchievementsResultCloseHandle
- XblAchievementsResultDuplicateHandle
- XblAchievementsResultGetAchievements
获取下一页成就结果
可能还有更多页面的成就。要进行检查,请调用 XblAchievementsResultHasNext。要获取下一页,请使用当前结果句柄调用 XblAchievementsResultGetNextAsync,然后在回调中调用 XblAchievementsResultGetNextResult。XblAchievementsResultGetNextResult 返回一个新的结果句柄。每个结果句柄都必须单独关闭。为 maxItems 传递 0 会尝试检索所有项,但服务可能会提供默认页面大小,并且即使还有更多页面,返回的项也可能少于请求的数量。请始终检查 XblAchievementsResultHasNext,而不要假定一次调用就会返回所有成就。
处理每一页结果
在以下示例中,不要关闭来自XblAchievementsGetAchievementsForTitleIdResult 的结果句柄,而是将其传递给 ProcessAchievementsPage。该函数会获取传入句柄的所有权,并且只关闭该句柄一次。当前句柄会保持打开状态,直到下一页的请求完成。
C++
- XAsyncBlock
- XblAchievement
- XblAchievementProgressState
- XblAchievementsResultCloseHandle
- XblAchievementsResultGetAchievements
- XblAchievementsResultGetNextAsync
- XblAchievementsResultGetNextResult
- XblAchievementsResultHasNext
获取单个成就
要获取单个成就,请按如下所示调用 XblAchievementsGetAchievementAsync。 Flat C API- XAsyncBlock
- XblAchievement
- XblAchievementsGetAchievementAsync
- XblAchievementsGetAchievementResult
- XblAchievementsResultCloseHandle
- XblAchievementsResultGetAchievements
