2

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

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

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

使用直立圆柱体的问题是自动上楼梯变得不可能,并且当沿着任何类型的斜坡行走时,圆柱体必须仅接触一个边缘,或者部分嵌入斜坡中。

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

4

3 回答 3

1

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

于 2009-07-09T16:17:23.963 回答
1

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

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

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

你有机会读这本书吗?

于 2009-07-09T16:37:26.340 回答
0

听起来您理想的解决方案是带有圆形边缘的直立圆柱体。它仍然会在直边上翻倒,但圆边可以让你滑上楼梯。您可能必须使用圆角半径才能获得所需的效果。

于 2009-07-09T16:30:39.333 回答