【发布时间】:2015-10-15 23:11:17
【问题描述】:
我有一个游戏地图表示为瓷砖地图。目前地图上存在两种类型的对象,与此问题相关:可收集资源(树木、岩石等)和玩家建造的建筑物。建筑物也通过道路连接。
我在找出可以执行以下操作的有效算法时遇到问题:
- 找到离任何相关建筑最近的资源(即找到离伐木工人/树木采集者最近的树)
- 找到离任何建筑最近的相关建筑(即找到离任何锯木厂最近的仓库)
我把这两个问题分开了,因为第一个不需要需要道路,而第二个应该只使用道路。
因此,结果应该是指向单个对象的单个路径,即最接近我从中找出的路径。然后,工人使用该路径来收集资源并将其带回,或者比方说,从锯木厂挑选资源并将其带到最近的仓库。
我知道如何获得最近的路径本身(A*、Djikstra 甚至 Floyd-Warshall),但我不确定如何以最佳方式处理这些路径的倍数并获得最佳/最近的路径,特别是如果它正在运行将非常定期地运行,并且地图对象集合(道路和建筑物)预计也会定期更改。
我在 Unity3D/c# 中执行此操作,但我想这并不是真正与 Unity3D 相关的问题。
我应该如何进行?
【问题讨论】:
标签: c# algorithm path-finding closest