我在作品中有一个基于2D切片的策略。我在徘徊如何处理地图和地图上单位之间的关系。
给定一个平铺坐标,我将需要使该单元站立在上面(如果有)。同时,如果给定一个单位,我将希望能够获得该单位的坐标。
我已经看到了两种解决方案。第一种解决方案是让单位存储一个坐标,而地图将单位引用存储在其图块中。这在地图和单位之间创建了循环依赖性。如果单元移动,我需要确保地图和任何单元保持同步。
第二种解决方案是只让单位跟踪其坐标。为了判断图块是否包含一个单位并获取该单位,我将遍历整个单位单元,找到一个具有匹配坐标的单位。这样就摆脱了循环依赖,但是却失去了第一个解决方案从地图中查找单位所具有的O(1)属性。由于我希望能够定期扫描地图以查找诸如路径查找,确定运动范围以及为给定单位找到有效目标之类的信息,因此这可能会加起来。
我也不能只将单位存储在地图中(或者可以吗?)。单位与玩家或AI的“军队”相关联。一支军队应该能够轻松地访问和遍历其所有部队。
由于这似乎是战略游戏中的常见问题,除了我描述的两种用于管理单位/地图关系的模式之外,还有其他模式吗?