上周我们探讨了 Tilemaps,我分享了一些我为 MDN 写的新文章。本周我回来介绍 **3D 碰撞检测**,这是几乎所有 3D 游戏必不可少的技术。我还会指引你了解 MDN 上关于 游戏开发 的一些新文章!希望这些文章能激发你扩展技能的灵感。
在 3D 游戏开发中,**包围盒** 提供了最常用的技术之一,用于确定两个虚拟物体在游戏过程中是否会发生碰撞(即相互交叉)。包围盒技术包括用一些虚拟体积包裹游戏物体,并应用交叉算法来描述这些体积的移动和交互。你可以将这种方法视为一种捷径:它比检测任意复杂形状之间的交叉更容易、更快。
在包围盒方面,使用 **轴对齐包围盒** (AABB) 是一个流行的选择。根据游戏的不同,有时也会使用球体。以下是几个被 AABB 包裹的 3D 物体的图像
MDN 上关于 3D 碰撞检测 的新文章描述了如何使用通用算法来执行使用 AABB 和球体的 3D 碰撞检测。无论你使用什么游戏引擎或编程语言来开发游戏,这篇文章都很有用。
我们还发布了一篇关于如何使用 包围盒进行碰撞检测 的文章,其中使用了 three.js,一个流行的 JavaScript 3D 库。(了解更多关于 three.js。)
查看 实时演示,并查看 它们的源代码。其中一个演示使用了一个 物理引擎(在本例中为 Cannon.js)来执行碰撞检测。在下面你可以找到另一个演示,它展示了如何使用 Three.js 来检测碰撞
希望你喜欢这些演示并发现它们有用。如果你想了解更多关于 HTML5 游戏开发中的特定主题,请在下方留言告诉我们!我们会尽力为你解答。
关于 Belén Albeza
Belén 是一名工程师和游戏开发者,在 Mozilla 开发者关系部门工作。她关心 web 标准、高质量代码、可访问性和游戏开发。
2 条评论