我正在尝试制作一个简单的3d平台游戏。我遇到的问题是碰撞检测和响应。我现在用一个球体来表示我的玩家角色(对于墙和地板的碰撞)。
我使用简单的重力和方向力,使用方向键进行移动。
我的问题发生在我走到边缘(比如悬壁)的时候。我会像球一样滑过边缘,但我寻找的行为是像直立的圆柱体一样从边缘上掉下来。布尔式的“我在平台上,或者我不在平台上”,而不是“我正在逐渐滑下边缘”。
使用直立圆柱体的问题是,自动滑上楼梯变得不可能,并且当沿着任何类型的斜坡行走时,圆柱体必须只接触一条边,或者部分嵌入到斜坡中。
在3d平台游戏中,玩家角色的良好碰撞表示是什么?
发布于 2009-07-09 16:37:26
您可以保留球体以进行碰撞检测。
如果发现碰撞,则应通过将角色划分为多个组件来更精确地计算碰撞。
一种常见的解决方案是对头部、躯干使用球体(因为碰撞很容易计算),对腿和手臂使用圆柱体(也可以为手和脚添加球体)。
你有可能阅读this book吗?
发布于 2009-07-09 16:17:24
试一试扁平椭球。只要沿着垂直轴拉伸球体即可。
发布于 2009-07-09 16:30:39
听起来你理想的解决方案是一个圆边直立的圆柱体。它仍然会倾倒在直的边缘,但圆角的边缘可以让你滑上楼梯。您可能必须使用舍入半径才能获得所需的效果。
https://stackoverflow.com/questions/1104916
复制相似问题