我们可以使用哪些方法生成随机隧道,类似于这个经典直升机游戏中的那个?除此之外,它应该是光滑的,并允许您通过它导航,同时寻找尽可能(不太对称,但并不过分扭曲要么)自然,它也应该:
注意: 我不是要求哪个最好或游戏使用什么,这可能引发扩展讨论并且是主观的,我只是要求其他人知道或使用过的某些方法,或者甚至认为它们可能有效.就是这样,我可以从那里拿走它.
还在gamedev上询问.我认为它适用于这两个地方,因为它是一个算法问题,因为它是一个gamedev问题,IMO.
我认为您可以使用B\xc3\xa9zier 曲线作为隧道壁,因为它们具有曲线的每一端都与该端最后两个控制点之间的线段相切的属性。这意味着可以惰性地生成曲线,并在运行时附加它们,而无需创建尖角。您只需要缓冲一个屏幕外片段。当其最左边缘出现在屏幕上时,创建下一个屏幕外片段。
\n\n如果使用三次方 B\xc3\xa9ziers,则需要 4 个控制点。第一个控制点必须与前一段的最后一个控制点相同;为了保持连接处的平滑度,第二个控制点需要位于包含前一段的最后 2 个控制点的线上的某个位置;第四个将是您希望该曲线结束的位置;第三个可能可以自由选择。(您可能希望将其保持在第 1 点和第 4 点之间的水平位置,以避免曲线“折返”的可能性。)
\n\nB\xc3\xa9ziers 还有 2 个其他属性可以简化您的实现:
\n\n编辑:用“凸包”替换“边界框”。
\n