来自这个线程:about percentComplete in GKAchievement
到目前为止,我已经成功地报告了成就进展,当提交的进度不包括十进制值时,我没有任何问题,比如执行10次任务以获得这个x成就。然后,每个reportProgress将是10%。
但是,我正在尝试编写一个只有在完成1000次任务之后才能完成的成就。这是完成的每项任务的0.1项进展。
在检索percentComplete时,是否修复了如何获取十进制值?我不确定保存的值或返回的值是否转换为int。
我想要做的是从GameCenter中检索当前的成就进度,每次任务完成时增加0.1d。如果我试图报告4.1d的进度,就会在日志中得到如下结果:
报告成绩de.company.testapp.achievement1,使用4.100000
这是一个系统生成的日志。那么,假设GameCenter将其保存为带有小数的双倍,并且只在请求percentComplete时返回整数,是否正确?
当然,我可以保留一个本地计数器,但当用户切换到另一个设备时,或者当本地身份验证的用户在设备内发生更改时,我试图避免得分不一致。这可能有点太过同步或更新我们的服务器,以跟踪每一个球员的每一个成就。
有人建议我应该如何正确处理跟踪这种成就吗?
提前谢谢。
PS。我正在使用GameCenterPlatform进行开发,但是我尝试在objective端检索percentComplete,但它也返回percentCompleted的整数。
发布于 2013-03-28 15:09:29
我认为本地存储是你唯一的选择。如果您担心跨设备跟踪,您可以尝试使用云存储的特定信息。我认为这是您唯一真正的选择,以更高的精度跟踪信息,超过GameCenter将允许,除非您还想跟踪您自己的服务器上的信息,仅次于GameCenter。
发布于 2018-01-12 13:31:33
我也很期待苹果能解决这个问题,但是我发现.
苹果的回答是:“百分比是用双倍报告的,但存储为整数百分比,例如1%、2%、3%、.、100%。您可能应该在本地存储进度,因为它们可能是无法连接到游戏中心的地方。” 对于那些能够访问Apple论坛的人:https://devforums.apple.com/message/522769
建议:-我们可以使用云用户默认的首选项来存储我们的得分值。下面是一个用于云首选项https://github.com/ArtSabintsev/Zephyr的有用库
https://stackoverflow.com/questions/15685070
复制相似问题