16.第二阶段x64游戏实战-分析二叉树结构
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
上一个内容:15.第二阶段x64游戏实战-分析怪物血量(遍历周围)
首先通过下图红框的代码还原出,方便看的结构
struct 我二叉树{long long 左边的数据;// 0 [rax]long long tmp1; // 8long long tmp2; // 8+8=16|0x10 long long 右边的数据;// 8+8+8=24|0x18 [rax+0x10]byte tmp3;// 8+8+8+1=25|0x19byte 是否选中;// 8+8+8+1+1=26|0x1A [rax+0x19]int tmp4;// 8+8+8+1+1+4=30|0x1Ebyte tmp5;// 8+8+8+1+1+4+1=31|0x1Fbyte tmp6;// 8+8+8+1+1+4+1+1=32|0x20int id;// [rax+0x20]
}
上方的结构坐标的数据和右边的数据的值是一个内存地址,内存地址里的数据样子还是 我二叉树 的样子,如下图更直观的样子,下图就是二叉树结构的样子,都是通过id从左到右从大到小排好序的数据查询某个数据会很快,就是折半查找(每查询一次数据都会过滤掉一半数据,所以会很快)
下图红框里的代码就是为了找上图中某一层的数据