• GameCenter 1:Achievement解锁


      GameCenter是iOS游戏不可或缺的一个环节,可以有效的为玩家提供交流和竞技平台。

      今天我要解决GameCenter的第一个问题成就解锁。

      先来看一下成就解锁的一般逻辑:

     

       1.在游戏启动的时候进行的动作

      我们姑且知道OnlineSubsystem类来处理GameCenter事务。

      有OnlineSub.PlayerInterface.AddReadAchievementsCompleteDelegate( );

      上边是什么逻辑呢?

      我们首先查看成就是否被解锁,然后上边的代理就是查看完成后的动作。

      查看成就是否被解锁的功能是

      OnlineSub.PlayerInterface.ReadAchievements();

      2.玩家在玩游戏获得成就时的动作

      OnlineSub.PlayerInterface.GetAchievements()来获得所有成就状态。相当于我们让士兵站在队列中,然后挑选那个伙计是我们目前能搞到的。

      在返回的数组中查找匹配的ID。

      如果bWasAchievementOnline是false(也就是当前成就没有被解锁)。

      vola,我们播放一个欢呼声或是UI庆祝这个成就解锁!

      调用OnlineSub.PlayerInterface.UnlockAchievement( )。

      OnlineSub.PlayerInterfaceEx.ShowAchievementsUI()可以显示成就解锁的UI。


      3.现在来看技术细节

      我们创建成就调用处理器,AntAchievementHandlerActor或是Object都可以。

      他的工作职责有

      ①存储等待处理的成就列表

      ②解锁成就

      解锁成就UnlockAchievement()的参数通常与末尾数值匹配

      com.mygames.killzone3.achievement_01,用1开始而不是0.

      ③检索成就是否在待处理成就数组中,不能将一个成就解锁两次嘛。

      ④如果开始处理一个未解锁的成就,就将标志位ProcessingAchievements设置为true。因为异步处理循环的需要

      ⑤我们在读取处理成就的时候读取所有成就列表,ReadAchievements 同时代理函数AddReadAchievementsCompleteDelete

      

        

        

  • 相关阅读:
    [.NET控件]Telerik RadControls for ASP.NET AJAX 2008 Q1 net 2.0 Web.UI
    Cookie对象实战
    怎么样修改地址栏前面的图标
    进程管理工具可以下载使用
    怎样才能实现表格背景图片拉伸
    TabControl控件的最佳实践,可以把一个窗体和用户控件添加进来
    flex+eclipse
    为gridview“删除”列添加确认对话框的方法
    触发器deleted 表和 inserted 表详解!!!
    ExtJs的使用
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/3290511.html
Copyright © 2020-2023  润新知