【iOS游戏开发】GameCenter之Achievement成就最佳实践

提交成就的最佳实践:

1.Report progress on an achievement as soon as the player makes progress. Dont delay reporting until a later time; if a player earns an achievement, the banner should be displayed immediately!

玩家已有成就更新就提交,不要延迟提交。

2.Report progress only when the player has actually made further progress. Do not report changes to Game Center if the player has not made progress, because it consumes network resources without actually changing the state of the data on Game Center.

提交时要判断成就完成度是否有进展,比如完成度10%更新为20%可以提交,像更新度不变的这种要过滤出来,节省网络资源

方法A:可以设置一个completedAchievementCache,这个cache中记录了所有的已完成的成就,当提交一个成就时,如果是非已完成成就 且 此成就有进度更新, 才上传GameCenter

方法B:可以添加achievementDictionary,用于记录所有的成就(完成和未完成)

Player在游戏中成功登陆GameCenter,加载所有已完成成就到achievementDictionary中,以后不管提交,更新,查询,重置什么的,都要同步更新这个表

3.If the player makes progress on multiple achievements simultaneously, use the technique shown in Listing5-2 to report the progress. Using this class method is more efficient.

说白了 有多个成就需要提交时 就用下面这货发送 能一次提交多个成就

[GKAchievement reportAchievements: achievementsToComplete withCompletionHandler:^(NSError *error){ ... } ];


你可能感兴趣的:(ios,iPhone,cocos2dx,gamecenter,achievement)