代表一个不规则形状的游戏世界

Aar*_*n M 8 c#

我正在开展一个游戏世界不规则形状的项目(想想湖的形状).这个形状有一个网格,坐标放在它上面.游戏世界只在形状的内部.(再一次,想想湖)

我怎样才能有效地代表游戏世界?我知道很多世界基本上是方形的,并且在2维或3维数组中运行良好.我觉得如果我使用一个正方形的数组,那么我基本上是在浪费空间,并且增加了我需要迭代数组的时间.但是,我不确定锯齿状阵列在这里是如何工作的.

游戏世界的示例形状

X
XX
 XX   X XX
 XXX XXX
  XXXXXXX
XXXXXXXX
 XXXXX XX
   XX   X
  X
Run Code Online (Sandbox Code Playgroud)

编辑:游戏世界很可能需要逐步完成每个有效位置.所以我想一个方法可以很容易地做到这一点.

Dan*_*ant 4

稀疏表示会带来计算开销和复杂性,因此除非边界区域比实际世界大得多,否则简单地接受“浪费”的空间可能是最有效的。您本质上是在牺牲额外的内存使用量来更快地访问世界内容。更重要的是,“浪费空间”的实现更容易理解和维护,在需要更复杂的实现之前,这总是更可取的。如果您没有充分的证据证明这是必需的,那么最好保持简单。