游戏内小红点算是一个极其常用的功能了,之前在德州里面也有过实现。
然而之前的实现实在是乱七八糟,所以这次也是将其做了彻底的重写,并把方案跟大家分享一下。
我们将游戏内小红点可以分为三类:
服务器小红点-服务器自动清除
比如,我们常见的每日任务,成长任务,活动等。
以每日任务举例:
当有任务奖励可以领取时,在每日任务按钮上就显示小红点。
当任务奖励全部领取完毕后,小红点消失。服务器小红点-客户端告知服务器清除
比如,信箱功能,新好友通知,好友申请通知。
以信箱举例:
有新邮件,则信箱按钮就显示小红点。
打开信箱后,如果信箱内分标签页,则判断标签页下的邮件列表,如果有新邮件,则在标签上显示小红点。
当标签页打开之后,标签页上小红点消失。 当所有标签页的小红点都消失后,信箱按钮上的小红点消失客户端小红点-客户端自己维护
比如聊天功能。
登录时,拉取所有未读消息,如果有消息的话,大厅聊天按钮需要显示小红点。
之后,当收到新的好友消息的时候,大厅聊天按钮需要显示小红点。
当点击聊天按钮进入具体的聊天页面时,每个有新消息的好友页签,需要显示小红点。
当点击该页签时,小红点消失。
当所有页签的小红点消失后,大厅聊天按钮的小红点消失。
接下里我们说一下具体的实现。
首先,所有服务器小红点的状态,在用户登录的时候,就应该返回。
所以我们在登录协议里面增加了一个red_points字段 ...