红点管理笔记

在游戏中会存在着大量的红点,告诉玩家对应的系统有奖励领取或者,体力满足,活动状态等。

整个游戏就就如同一颗树,主场景就类似根,面板上的各种系统和活动就是对应的子树。每个系统又有可能存在0~n个子系统,结构如图,就是一颗倒立的树,画的比较丑,莫见怪^.^:

从图中可以看出每个系统都类似一颗颗子树。玩过游戏的都知道。当子系统有红点,那么他的上一级,上上级都要显示红点,这样玩家在主面板看到对应系统icon上显示了红点就知道内部有可领取或可操作的东西。

这里只提供本人的思路,需要红点变化的地方只要监听RED_REFLASH_EVENT就可以:

1.1.红点管理类 RedManager 管理所有注册进来的红点。注册到一个redPoints表中

1.2.需要一个因事件变更,收集因这个事件变更的红点的表。reflashReds = {}

比如等级变化 导致升级面板红点更新 头衔满足等级需求可激活红点,那么就要将这两个redPoint添加进reflashReds表中

1.3.唤醒timer 执行update方法 ,方法中如果发现reflashReds中有数据 就要一一移除进行check检查红点变化。如red = reflashReds[1]             red:check()         table.remove(reflashReds,1)

1.4.当update执行一定次数 比如3次就post一次RED_REFLASH_EVENT事件

1.5.提供两个get方法分别获取redPoint对象和redPoint数量

大致图就这样 好丑的图:

2.1.红点节点RedPoint:每个红点有红点名称name,有0~n个子红点用childs = {},需要注册到红点管理器中,需要添加到父红点中

2.2.需要提供一个get红点数量的方法

2.3.需要一个用于检查红点变化的方法 check(),如果红点发生变化更新redNum并返回true 否在false


3.1每个系统红点类:如RedRoleSys

整理的可能各位大佬看不明白,请见谅,用于自己梳理记录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,949评论 1 180
  • 夜莺2517阅读 127,807评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 11,843评论 1 6
  • 我是一名过去式的高三狗,很可悲,在这三年里我没有恋爱,看着同龄的小伙伴们一对儿一对儿的,我的心不好受。怎么说呢,高...
    小娘纸阅读 8,712评论 4 7
  • 这些日子就像是一天一天在倒计时 一想到他走了 心里就是说不出的滋味 从几个月前认识他开始 就意识到终究会发生的 只...
    栗子a阅读 5,536评论 1 3