zoukankan      html  css  js  c++  java
  • 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

      

        

        

  • 相关阅读:
    选择适合什么模式
    Filter做用户授权的例子
    分析LogFilter
    理解session
    XML定义用途
    web服务后台应用工作原理
    企业级应用和互联网应用的区别
    轻量级Java EE企业应用实战的目标
    软件工程期末项目总结
    软件工程之学习报告
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/3290511.html
Copyright © 2011-2022 走看看