首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表示不规则形状的游戏世界

表示不规则形状的游戏世界
EN

Stack Overflow用户
提问于 2010-06-04 02:35:30
回答 9查看 287关注 0票数 8

我正在做一个游戏世界不规则形状的项目(想一想湖的形状)。此形状有一个坐标放置在其上的网格。游戏世界只在形状的内部。(再说一次,想想Lake)

我如何有效地表示游戏世界?我知道许多世界基本上是正方形的,在2或3维数组中工作得很好。我觉得如果我使用一个正方形的数组,那么我基本上是在浪费空间,并且增加了我迭代数组所需的时间。但是,我也不确定锯齿数组在这里是如何工作的。

游戏世界的形状示例

代码语言:javascript
复制
X
XX
 XX   X XX
 XXX XXX
  XXXXXXX
XXXXXXXX
 XXXXX XX
   XX   X
  X

编辑:游戏世界将很可能需要每个有效的位置步入。所以我想要一个方法,让它更容易做到这一点。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-06-04 02:41:36

稀疏表示存在计算开销和复杂性,所以除非边界区域比实际世界大得多,否则最有效的方法可能就是简单地接受“浪费”的空间。您实际上是在权衡额外的内存使用,以便更快地访问世界内容。更重要的是,“浪费空间”的实现更容易理解和维护,这在需要更复杂的实现之前总是更可取的。如果你没有很好的证据证明它是必需的,那么最好保持它的简单性。

票数 4
EN

Stack Overflow用户

发布于 2010-06-04 02:41:44

您可以使用quadtree来最小化表示中浪费的空间量。四叉树非常适合于划分具有不同粒度的2维空间-在您的情况下,最细的粒度是游戏正方形。如果你有一个完整的20x20区域,没有任何游戏方块,四叉树表示将允许您只使用一个节点来表示整个区域,而不是像数组表示中的400个节点。

票数 4
EN

Stack Overflow用户

发布于 2010-06-04 02:44:05

使用你想出的任何结构-你可以随时改变它。如果你习惯于使用数组,那就使用它。不要担心你将要使用的数据结构,开始编码吧。

在编写代码时,从底层数组中构建抽象,比如将其包装在语义模型中;然后,如果您意识到(通过分析)它对于所需的操作来说是浪费空间或缓慢的,那么您可以在不引起问题的情况下将其交换出去。不要试图优化,直到你知道你需要什么。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2968764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档