gpt4 book ai didi

c# - 在 C# 中高效访问大量对象

转载 作者:太空宇宙 更新时间:2023-11-03 10:50:26 24 4
gpt4 key购买 nike

<分区>

我正在使用 C# XNA 使用六边形网格制作游戏。 map 大小可以从每边 6 个单元格到 144 个单元格不等。使用一点几何数学,这意味着最大单元格数量为 61,777! (我也在考虑每边增加 216 个单元格,总共产生 139,537 个单元格!!!)

我需要的是一种基于网格坐标访问给定单元格的有效方法。遍历整个列表,直到找到 col == c 和 row == r 不会到达的位置剪掉它。

数据结构也需要调整大小(因为打通一个关卡意味着你会进入下一张 map ,它可能更大或更小)。所以我不能使用二维数组(如果我错了请纠正我)。现在我正在考虑 List 因为它确实有一个 ElementAt<i> .但是一个List<List<CELL>>看起来很麻烦。 CELL 的动态 2D 数组似乎最好,但除非我严重错误,否则此类数组在 C# 中需要固定大小。

也请让我知道任何可能性的内部运作。列表如何存储它们的数据? (除了持有一个指针---我需要知道任何其他开销)。他们真的是随机访问还是ElementAt<i>实际上迭代 i 次以到达该元素?

我的其他激进想法就像一个除 base-6 之外的二叉树,比如将 map 分成六角形扇区,每个扇区包含一堆单元格。然而,有了这些激进的想法,我无法理解任何实现细节:(

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com