type
status
date
slug
summary
tags
category
icon
password
大部分游戏项目都会涉及到红点系统,即在UI上弹出醒目的类红点提示UI,引导玩家进行点击查看;且这类红点提示往往都具有逐级向上,层层穿透的特性。如果单独由UI逻辑去实现,将是十分混乱且不易于维护和扩展的。尤其当UI数量变得庞大,红点需求也多起来之后,更加需要有合理的数据结构和管理方式。前缀树(Trie),一种多叉树,非常高效的数据结构,用于存储和检索字符串。在红点系统中,前缀树可以用来合理管理红点的层级关系。
思路
前缀树 n叉树的一种,用来存字符串的,每个节点代表一个字符串也就是前缀,子节点代表的字符串就是由本身的字符串和通往该子节点路径上所有的字符串组成的
管理类:通过红点路径,注册、反注册、触发红点事件,管理节点状态,标记脏节点和更新。
节点类:每个节点就是红点路径的一部分,初始化和释放节点,管理单个节点的状态及其子节点。
一个节点更新,层层传递到路径上的所有节点,进行状态更新,为了避免大量红点频繁刷新导致卡顿
可以标记脏节点,延迟进行批量刷新,比如一键领取已完成的任务,就可以进行标记并且批量刷新,而不是一个个调刷新逻辑。
- Author:lzzd
- URL:https://lazy-zed.com/article/u3d_18
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!