面向 C++ 的 Play 游戏服务使用入门

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Google Developers网络

小提示:您能找到这篇{面向 C++ 的 Play 游戏服务使用入门}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的面向 C++ 的 Play 游戏服务使用入门内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

注意:要下载最新版Google Play游戏服务C++SDK,请参阅SDK下载页面。

Google Play游戏服务C++SDK提供了可与Google Play游戏服务配合使用的C++API,专为已有C++游戏实现的开发者而设计。

该SDK目前实现了以下服务:

授权



成就

排行榜

回合制多人游戏

实时多人游戏

活动和任务

游戏存档

附近连接(仅限Android)

玩家统计信息

< ">< font-size: 16px;">概念

大体上讲,您需要执行以下步骤来使用SDK:

1.为Android设置平台配置。

2.使用GameServices::Builder配置和构建一个GameServices对象。GameServices对象会自动尝试登录,并通过OnAuthActionFinished()回调返回结果。记下回调所返回的结果。如果自动登录尝试失败,您可以显示一个按钮供用户手动登录。

3.收到OnAuthActionFinished()结果后,您可以使用GameServices对象及其子对象管理器来进行Play游戏服务调用,包括:

登录(授权失败后):StartAuthorizationUI()

解锁成就:Achievements().Unlock()

使用内置界面显示成就:Achievements().ShowAllUI()

提交最高得分:Leaderboards().SubmitScore()

退出:SignOut()

4.当您使用完GameServices对象时,请将其重置或销毁。

详细来说,您需要执行以下步骤:

1.初始化平台配置:这是一个包含平台特定初始化信息的对象。在Android上,平台配置包含Java虚拟机和指向当前Activity的指针怎么在58发布信息

//In android_main(),create a platform configuration

//and bind the object activity.

//Alternately,attach the activity in JNI_Onload().

gpg::AndroidPlatformConfiguration platform_configuration;

platform_configuration.SetActivity(state-&gt;activity-&gt;clazz);



2.构建一个GameServices对象:该对象是Google Play游戏服务功能的主要入口点。使用GameServices::Builder创建GameServices实例。



在大多数实现中,只要您的C环境持续存在,给定GameServices对象就会持续存在;在Android Activity暂停和恢复时,您无需重新初始化该对象。

//Creates a GameServices object that has lambda callbacks.

game_services_=gpg::GameServices::Builder()

.SetDefaultOnLog(gpg::LogLevel::VERBOSE)

.SetOnAuthActionStarted([started_callback](gpg::AuthOperation op){

is_auth_危机公关处理成功案例in_progress_=true;

started_callback(op);

})

.SetOnAuthActionFinished([finished_callback](gpg::AuthOperation op,

gpg::AuthStatus status){

LOGI("Sign in finished with a result of%d",status);

is_auth_in_progress_=false;

finished_callback(op,status);

})

.Create(pc);

3.使用管理器类来管理GameServices对象。管理器可通过GameServices实例访问,用于将相关功能集合在一起,例如成就管理器和排行榜管理器。它们本身不含用户可见状态。管理器由引用返回,所含的GameServices实例可控制其生命周期。您的客户端绝不应保留管理器引用,而应保留GameServices实例。

管理器通过常量值类型的对象返回数据。这些值可一致地反映执行查询所对应时刻的基础数据情况。

//Submit a high score

game_services_-&gt;Leaderboards().SubmitScore(leaderboard_id,score);

//Show the default Achievements UI

game_services_-&gt;Achievements().ShowAllUI();

4.当您使用完GameServices对象后,通过以下方式进行清理:在拥有该对象的unique_ptr上调用reset(),或者在超出使用期限后让unique_ptr自动销毁它。

< ">< font-size: 16px;">线程模型

除非另有说明,否则所有GameServices和管理器方法都拥有线程安全异步实现。它们可在任何线程上调用,无需外部锁定,并且执行顺序与其调用顺序一致。

访问器方法(读取状态的方法)具有两种主要变体。第一种方法(名称类似FetchProperty())以异步方式将其结果提供给所提供的回调;第二种方法(名称类似FetchPropertyBlocking())以同步方式将其结果返回给调用线程。

//Blocking callback

gpg::AchievementManager::FetchAllResponse fetchResponse=

game_services_-&gt;Achievements().FetchAllBlocking(std::chrono::milliseconds(1000));

//Non-blocking callback

game_services_-&gt;Achievements().FetchAll(gpg::DataSource::CACHE_OR_NETWORK,

[](gpg::AchievementManager::FetchAllResponse response){

LogI("Achievement response sta精准营销让效益tus:%d",response.status);});

所有用户回调均在一个专用回调线程上调用。该线程可能不同于“主线程”或“界面线程”的任何平台概念。您还应尽力确保用户回调能快速执行;回调线程停止可能会引起用户可见问题(例如,注销请求延迟完成)。

< ">< font-size: 16px;">平台特定信息

要开始在Android上使用Play游戏C++SDK,请继续阅读快速入门指南。

< ">< font-size: 16px;">深入阅读

务必阅读Google Play游戏服务C++SDK自带的类文档以了解更多详情,并查看演示SDK使用方法的示例。

面向 C++ 的 Play 游戏服务使用入门

上一篇:Google Play 游戏服务的质量核对清单
下一篇:App Store和Google Play的排名因素有哪些?


版权声明:以上主题为“面向 C++ 的 Play 游戏服务使用入门"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    面向 C++ 的 Play 游戏服务使用入门
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“面向 C++ 的 Play 游戏服务使用入门”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通面向 C++ 的 Play 游戏服务使用入门的相关事宜。

关键词:面向,C++,的,Play,游戏服务使

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号