我在(非常少的)空闲时间制作了一个 roguelike。每个级别基本上都是几个由路径连接在一起的矩形房间。然而,我希望房间之间的路径看起来自然且多风。例如,我不会考虑以下自然外观:
B
X
X
X
XX
XX
XX
AXX
我真的想要更像这样的东西:
B
X
XXXX
X
X
X
X
AXXXXXXXX
这些路径必须满足一些属性:
- 我必须能够指定它们的边界区域,
- 我必须能够参数化它们的风和长度,
- 线条不应看起来像是从一条路径开始并在另一条路径结束。例如,上面的第一个例子看起来好像从 A 开始,在 B 结束,因为它基本上反复改变方向,直到它与 B 对齐,然后就直奔那里。
我希望使用 A*,但老实说,我不知道我的启发式方法是什么。我也考虑过使用遗传算法,但我不知道这种方法最终会有多实用。
我的问题是,什么是获得我想要的结果的好方法?请不要只指定“A*”或“Dijkstra 算法”之类的方法,因为我还需要一个好的启发式帮助。