游戏内的数据结构

修改于2020/12/26139 浏览游戏开发攻略
硬核内容警告!!!
利用列表完成栈和队列
利用堆栈,可以轻松解决有多层嵌套数据的处理(比如将常规的中缀表达式转为逆波兰表达式)而游戏内的代码里的列表(或者说是链表)为此提供了一个很好的解决方案,只需要一个列表,而不需要其他的数据,就能得到末尾的数据和数据总数,就可以完成入栈和出栈的操作,非常方便
而队列也可以根据类似的方法实现,将新的数据置于尾部而删除头部数据,同样只需要一个列表即可完成
树状图和网状图
列表和字典以及结构体都可以完成对图的结点的构建,但结构体效率最佳(使用列表的节点比较不稳定,可能会因为缺失某一项信息而导致全部其他数据错位(字典和结构体可使用缺省值),而字典数据修改需要复制一次)
借助堆栈可完成图的遍历,深度和广度优先的搜索,但要注意对于存在环的图要加入检测以防无限入栈(虽然这里栈没有规定上限)
面向对象的实现
游戏内的物体,无论是机械还是UI,甚至是变量或者零件
都可以被认定为是一个“对象”,用面向对象(把一些数据视为一个“对象”,对象有一些功能)来代替面向过程的思想,可以帮助我们解决很多表面上很复杂的问题
对于机械和UI按钮类型,底层已经给出了一些事件,剩余的对象类型,则需要自己写相应的函数
1