【问题标题】:Player to voxel collision detection/response玩家到体素碰撞检测/响应
【发布时间】:2012-02-17 04:58:32
【问题描述】:

我有大量的体素,就像我的世界一样。玩家/敌人在这个网格中。我不知道如何进行这种类型的碰撞检测。请注意,这不是动态可移动对象与动态可移动对象,这是可移动对象与固定地面/墙壁/天花板。

检测没问题,就是不知道怎么做的响应。

我必须处理的内容:玩家位置、速度和边界框,以及围绕玩家的 1x1x1 体素数组。

【问题讨论】:

  • gamedev.stackexchange.com上提问可能会更幸运
  • 我可以将其复制粘贴到那里的新问题中吗?
  • @khyperia:我已将其标记为由 mod 迁移。
  • 我不愿意移动这个,因为这个问题在这里和那里都是 NARQ。请显示一些代码来显示问题或至少显示您正在使用的结构,如果这是一个更好的问题,那么我们将迁移(再次标记)。

标签: c# xna collision-detection voxel


【解决方案1】:
  • 计算玩家的速度碰撞体素的unitsurface normal的点积(指向外面)。
  • 按此值缩放(乘以)单位曲面法线。
  • 从玩家的速度中减去你的结果。

这将为您提供大多数游戏采用的“靠墙滑动”效果(没有任何有问题的三角函数)

【讨论】:

  • 如何告诉玩家应该去哪个方向,即玩家与哪个表面平面相交?顶部,侧面,什么?
  • 如果您无法确定这一点,我建议您发布一个新问题。有些人可能会发布比我更好的答案。
  • 只是一个补充,如果您在点积之上,体素中的每种材料还有一个不同的乘数,那么您现在正在模拟摩擦并且可以有更滑或更粗糙的块。
猜你喜欢
  • 1970-01-01
  • 2011-09-05
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
相关资源
最近更新 更多