我正在开展一个游戏世界不规则形状的项目(想想湖的形状).这个形状有一个网格,坐标放在它上面.游戏世界只在形状的内部.(再一次,想想湖)
我怎样才能有效地代表游戏世界?我知道很多世界基本上是方形的,并且在2维或3维数组中运行良好.我觉得如果我使用一个正方形的数组,那么我基本上是在浪费空间,并且增加了我需要迭代数组的时间.但是,我不确定锯齿状阵列在这里是如何工作的.
游戏世界的示例形状
X
XX
XX X XX
XXX XXX
XXXXXXX
XXXXXXXX
XXXXX XX
XX X
X
Run Code Online (Sandbox Code Playgroud)
编辑:游戏世界很可能需要逐步完成每个有效位置.所以我想一个方法可以很容易地做到这一点.
稀疏表示会带来计算开销和复杂性,因此除非边界区域比实际世界大得多,否则简单地接受“浪费”的空间可能是最有效的。您本质上是在牺牲额外的内存使用量来更快地访问世界内容。更重要的是,“浪费空间”的实现更容易理解和维护,在需要更复杂的实现之前,这总是更可取的。如果您没有充分的证据证明这是必需的,那么最好保持简单。