2D 塔防 - 相互堆叠的单位
2D Tower Defense - Units stacking on top of each other
我目前正在实现一个2D自上而下的塔防游戏。对于寻路,我使用了从目标向后的广度优先搜索。一切都很好,尽管我的单位都遵循完全相同的路线,因此可能会堆叠在一起。
对于同一时间的单位,我当然可以一个接一个地释放它们,但如果混合了更快和更慢的单位,那么更快的单位会"走过"较慢的单位,看起来很奇怪。
在 Fieldrunners 中,当需要通过时,2 个单元会互相绕行,这看起来很酷,尽管我认为这实现起来非常复杂。
你知道我如何解决这些问题/提高我的游戏吗?
您可以尝试研究所谓的转向行为。使用碰撞检查来确定单元何时与它们应该能够通过的节点上无法通过的东西发生碰撞,并使用转向行为来避免它。
这样做的好处是,您不必不断更新和重新计算所有单位的路径,因此它的可扩展性要高得多。
相关文章:
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- RcppEigen 模板化函数,用于填充单位法线
- 如何在 macOS 卡塔琳娜上解决此错误?
- 如何有效地计算将单位立方体映射到自身的反射和旋转?
- 以天C++为单位的两个时间戳之间的差异
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 从原始字节解码协议缓冲区(以 C++为单位)
- ANTLR - 如何从维度扩展单位
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 编写以 C++ 为单位返回值的函数
- 纹理单位重叠?渲染了错误的纹理
- Cuda:具有位集数组的 XOR 单位集
- 以C++为单位进行运行长度编码
- 如何找到两个日期之间的时间差异(以秒和纳秒为单位)?
- arr[n] 是否以 C++ 为单位打印数组的长度?
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 以 C++ 为单位具有输出限制的排列
- 以 GDB 为单位指定浮点精度
- 防弹站树搜索功能C++
- 2D 塔防 - 相互堆叠的单位