【发布时间】:2013-02-24 20:11:23
【问题描述】:
我有一个为我正在开发的游戏创建的自定义 UI 小部件库。我需要考虑绘图顺序并将其重新调整到我目前拥有的东西中,并且不确定最好的方法。我有一个从 xml 文件加载小部件的 UI 类。它将所有小部件存储在一个映射中,其中键是小部件的字符串名称。
Widgets 可以在父子关系中保存其他 Widgets(因此 Widget 类有一个 Widgets 的映射,其中名称再次成为键)。当我绘制时,我循环遍历 UI 小部件映射,并且只调用没有父级的小部件的 Draw() 函数(最顶层)。在每个 Widget 的 Draw() 中,它循环遍历其子级并调用它们的 Draw() 函数。
问题是什么是让每个小部件的排序顺序变量在保留地图的同时按排序顺序变量的顺序绘制的好方法,因为我喜欢通过字符串键名轻松查找小部件?
有什么想法吗?
【问题讨论】:
-
一个
map用于按名称轻松访问小部件,以及一个排序的vector(或list)用于绘图? -
这很常见吗?存储它们不被认为是浪费空间吗?我知道它们是指针,但它仍然占用存储空间对吗?
-
我没有亲身经历,但我会这样做。除非您拥有数百万个小部件,否则这不会成为问题。
标签: c++