代码之家  ›  专栏  ›  技术社区  ›  Martin

三维平台游戏中玩家角色的良好碰撞表现?

  •  2
  • Martin  · 技术社区  · 16 年前

    我正在尝试制作一个简单的3D平台游戏。我遇到的问题是碰撞检测和响应。我目前代表我的玩家角色(墙壁和地板碰撞)与一个球体。

    我使用简单的重力和方向力,使用箭头键进行移动。

    当我走到悬崖边时,我的问题就出现了。我像球一样滑过边缘,但我要寻找的行为是像一个直立的圆柱体一样从边缘掉下来。一个布尔值“我在平台上,或者我不在平台上”,而不是“我正在逐渐从边缘滑下”。

    使用直立圆柱的问题在于,从楼梯上滑上楼梯是不可能的,当沿着任何斜坡行走时,圆柱必须只接触一个边缘,或者部分嵌入斜坡中。

    在3D平台游戏中,玩家角色的良好冲突表现是什么?

    3 回复  |  直到 14 年前
        1
  •  1
  •   ThibThib    16 年前

    您可以保留球体以进行碰撞检测。

    如果你发现了碰撞,那么你应该通过把你的角色分成几个部分来更精确地计算碰撞。

    一个常见的解决方案是使用球体(因为碰撞很容易计算),用于头部、躯干和腿部和手臂的圆柱体(也可以为手和脚添加球体)。

    你能看书吗 this book ?

        2
  •  1
  •   Javier    16 年前

    试试扁圆椭球。沿着垂直轴拉伸球体。

        3
  •  0
  •   James Eichele Bernard Igiri    16 年前

    听起来你的理想解决方案是一个直立的圆边圆筒。它仍然会在直边上倾斜,但是圆边可以让你滑上楼梯。为了得到你想要的效果,你可能需要使用圆角半径。