【问题标题】:How to detect collision with a wall in a first person webgl game如何在第一人称 webgl 游戏中检测与墙壁的碰撞
【发布时间】:2018-05-06 19:33:23
【问题描述】:

我正在使用WebGL 创建我的第一个网页游戏,但我被困在了 碰撞检测。我创建了一个场景,我可以四处走动,但当我碰到物体时,我可以穿过它们。

我用assimp2json 库导入了我的搅拌机文件,所以我得到了一个
JSON 文件。我仍然得到原始的混合对象。我在我的项目中使用了这个storage room

【问题讨论】:

  • 请更具体。 WebGL 是一种图形渲染技术。它不包含物理引擎。您必须为此选择/编写一个单独的引擎。
  • 检查这个链接WebGL Physics and Collision它可能对你有帮助
  • @CWBudde 我想知道如何使用 javascript 检测玩家(第一人称)和物体(墙壁等)之间的碰撞。我在github.com/acgessler/assimp2json 的帮助下将 .blend 文件转换为 json,并使用 WebGL 将其加载到我的画布元素中。

标签: javascript collision-detection blender


【解决方案1】:

正如 Monah 所提到的,WebGL 不包含太多用于模拟物理的代码。它只是用于渲染。碰撞检测之类的东西是完全不同的话题。

您可以“手动”执行此操作,但很可能您会重新发明轮子,否则效率会降低(功能和性能方面)。这就是第 3 方库肯定会让您的生活更轻松的地方。

除了已经提到的Oimo.js,还有Cannon.jsothers

您还可以查看其他 SO 帖子,例如 How to detect collision in webgl?

【讨论】:

  • 知道 WebGL 是什么(仅绘制场景),但我不知道如何使用带有 lib assimp2json 的转换后的 blend 文件来实现 CD。我有我的网格的顶点,它是法线和面+我必须为其创建缓冲区的所有内容。我查看了 Oimo 的手册和 tuts,但甚至没有导入它,因为我不知道如何使用高级工具,例如 npm。我也找到了three.js,但是教程是针对3rd person view的。
  • 我猜你的问题太宽泛了(也许这解释了反对意见)。尝试进一步缩小你的问题。通常,您会看到您的(更多)具体问题已经得到解答,或者您需要事先深入研究该主题(通过阅读更多关于一般碰撞检测、[输入数据的]数据结构和工具的信息)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2016-04-24
  • 1970-01-01
相关资源
最近更新 更多