2009-07-09 56 views
2

我想做一个简单的3d平台游戏。我遇到的问题是碰撞检测和响应。我目前正在用球体代表我的球员角色(用于墙壁和地板碰撞)。3D平台游戏中玩家角色的良好碰撞表现?

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

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

使用立式气缸的问题是自动上升楼梯变得不可能,当沿着任何类型的斜坡行走时,气缸必须仅接触一个边缘,或者部分嵌入斜面。

什么是3D平台游戏中玩家角色的良好碰撞表现?

回答

1

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

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

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

您是否可以阅读this book

1

尝试一个扁椭球。只需沿垂直轴伸展球体即可。

0

这听起来像你理想的解决方案将是一个圆形边缘直立圆柱体。它仍然会倾斜直线边缘,但圆角边缘可以让您向上滑动楼梯。您可能需要使用舍入半径才能获得所需的效果。