如何检测壁架?


18

在我的游戏中,我希望我的角色能够抓住并抓住壁架,并有足够的空间提拔自己。

如何检测是否有壁架,以及角色是否有足够的空间爬上去?


该问题是先前两个问题的经典版本。请参阅此处的元讨论
doppelgreener 2012年


Answers:


22

Overgrowth Alpha 132的视频显示了他们如何实现壁架攀登。

他们的方法可以在任何引擎中使用,甚至在使用矩形和圆形而不是圆柱和球体的2D引擎中也可以使用。

它们的窗台检测涉及两个部分:

墙壁检测(使用球体)

游戏会检查玩家当前是否正在撞墙。如果有墙,则玩家可能会抓住壁架。第二部分负责分析壁架。

壁架检测(使用气缸)

如果玩家接触墙壁,则将圆柱体从玩家位置上方的一定距离向下扫掠,直到接触到壁架为止。这决定了三件事:

  • 玩家上方是否有壁架
  • 壁架的高度
  • 考虑到圆柱体占据与玩家相同的水平空间,玩家是否有足够的空间爬上壁架。

令人惊叹的方法和出色的示例+1
Bugster,2012年

“圆柱体从玩家位置上方的一定距离向下扫掠”什么距离?这在处理室内环境时非常重要(您会意外地将天花板相交)。
塔拉

1
过去,@ Dudeson曾经使用射线投射最初找到窗台表面,然后再进行体积检查,以确认是否有足够的畅通无阻的空间来攀爬。由于光线投射是定向的,因此不会将上限视为误报-尽管如果起点过高,它仍可能在下一层被卡住。确切的度量标准取决于每个游戏的许多细节-角色尺寸,手臂伸直,水平设计中的间隙,下降速度等
DMGregory

@DMGregory射线投射好主意!
塔拉
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.