游戏活动开发

       做游戏开发有一小段时间咯,进来都是修一些简单的小bug,不过通过修简单的bug也能快速熟悉代码逻辑,毕竟不可能把所有代码过一遍的,实在是太多了。

      我是做游戏客户端的,这里稍微介绍一下如何做一个活动,比如A活动是一个达到某个条件后可领取特定奖励的活动。这个时间描述标题啥的一般是策划配置好,客户端只需要读表就可以了,服务端根据策划配好的时间判断A活动是否开放,如果开放的话客户端就能看到这个A活动入口,当然客户端可以强制刷新这个A活动,但是点击没有服务端的回馈信息,相当于没用。

       一般活动会有个红点提示玩家去点击,这个红点是否显示判断是放在服务端的,不过有一些特殊活动也是需要两端同时判断处理的,这种特殊活动我也遇到一次。另外一些活动并不是针对所有玩家开放的话,即使服务端通知活动已经开放,也需要在客户端进行一次条件判断,如果不符合条件照样屏蔽该活动。

       当玩家点击活动后就可以跳到你写的脚本文件里执行逻辑了,如果是A这类活动的话 :

1、面板内容的展示,写一个_initUIContent() 函数安排好哪些控件可见与不可见、绑定好按钮EventListener、奖励位置与是否领取也初始化好来; 

2、如果手机游戏支持横竖屏切换的话,添加一个手机横竖屏监听,那就要写一个_setLayout() 函数安排好分别横竖屏时这些控件应该在哪些位置;

3、奖励是否领取的数据是存在服务端的,因此在初始化的时候send一个消息给服务端判断该活动我这个账号是否领取过了(参数一般有 活动id, callback回调函数, 发送信息的指令类型id),然后在callback回调函数里读取返回的信息判断玩家是否领取过,领取过的话就将领取按钮置灰、领取按钮按下无反应、奖励置为领取状态等操作;

4、玩家并没有领取过奖励,点击领取按钮时,客户端会进行一次条件判断该玩家领取条件是否达成,条件未达成弹出文字提醒,条件达成的话send一个消息给服务端(参数同样,活动id, callback回调函数,指令id),剩下交给服务端再判断一遍玩家领取条件是否达成(防止一些使用指令的外挂吧),如果没问题将奖励发给该账户,通知客户端播放领取奖励的动画,客户端播放奖励动画就在callback执行。

 

        如果是另一种活动,比如B活动是连续登录领取奖励的活动,可能就稍微麻烦一丢丢,需要读取服务端时间数据来监听是否到了午夜0点,绑定_onDayChange()函数,午夜到了的话判断一下是否过了活动时间,过了的话就强制关闭这个B活动(哈哈),没过时间的话就更新一下活动领取和完成状况,一般会有三个list表供读取参考,都是从服务端读取的数据

1、finish_info_list :条件是否达成列表,加入是登录领取活动的话,玩家未登录是置0,登录后置1,活动一共七天,玩家已经登录了两天,那么finish_info_list = [1, 1, 0,0,0,0,0]

2、rewards_info_list :是否领取列表,领取置1,未领取置0

3、rewards_list : 奖励列表

4、_updateActivityState()函数,设置奖励领取状态、领取按钮状态等,在这里读取上诉3个list表

      就说如果到了午夜就要进入4函数,重新读取一遍1、2、3这三个list, 还有就是监听一下服务端是否修改上诉三个list的数据,如果数据有变化,也要进入4函数。

       接着就跟A活动差不多了,判断一下条件是否达成,达成可领取奖励,弹出相应天数的奖励动画。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值