第一次接触SDK

今天做我们游戏的首测登录过程,leader说要把渠道接进来,我真是一点都不懂啥是啥,懵懵懂懂开始,感觉自己要入大坑( - -|||)
基本思想是这样的:
1 向账号验证服务器发送登录请求
2 获得成功登录结果
3 进入游戏逻辑处理

第1步在正式版本中,就是与渠道的对接,账号的验证都是由平台来完成的,首测比较简陋,验证由我们自己完成,所以逻辑有些绕,导致我此刻也依然心虚得很… …

leader给我画的图可以说是简单易懂,抽象成流程图大概是这样的:

游戏请求登录的逻辑

其中子过程1为:
登录逻辑

这套逻辑是很好理解,但是拆分就让我头很大啊,登录流程和游戏代码在逻辑上要分开,但是处理上又紧密相连,互相调用+函数回调就是不可避免的需求,为了将manager的代码和具体平台处理的代码完全隔开,leader向我介绍了一种代理的技术,苦口婆心给我讲了一个加班的晚上,我尽力去理解 Thanks♪(・ω・)ノ

经我分析这套代理的流程是这样的:
code1中有 Manager、agent接口类—IPlatform、agent子类1—AgentOne

  • IPlatform中定义了Login的接口
  • Manager中定义了一个回调函数类型XDelegate,参数是我们需要传递的类型;定义了一个该类型的回调函数loginCallback;在初始化时new了一个AgentOne实例parentagent,但是将类型限定为IPlatform,以防外界通过manager获取到特定对象,构造函数传参将刚才的回调函数传入;
  • AgentOne中定义一个静态AgentOne对象agent,并由构造函数赋值,对外可以取到;实现了Login接口,其中是到code2中去处理code2中的登录表现;定义了一个回调函数loginFunc,当返回登录结果时调用;定义一个对外的OnLogin接口,等待调用;

登录过程:Manager.Login() -> parentagent.Login() -> //to code2 do something
/* code2 call*/ agent.OnLogin -> agent.loginFunc() -> Manager.OnLogin() -> Manager.loginCallback()

这样登录操作从外边来看,只是请求登录Manager.Login(),回调函数也是通过manager设置的,有关具体平台的事情都是在登录流程中处理的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值