问题标签 [physijs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1658 浏览

javascript - Physijs 没有重力的网格之间的简单碰撞

我正在使用 Physijs 来确定我的网格之间的静态碰撞。因为我需要知道哪些表面相交。

我破解了一个似乎可行的简单演示。

目前我必须将我的场景配置为使用重力,这会阻止我将我的网格定位在任何 y 位置,因为它们开始下落或漂浮。

有没有简单的方法从模拟中消除重力,只使用网格碰撞检测?

--update--- 我必须将每个网格的质量显式设置为 0 而不是空白。质量=0 重力没有影响。伟大的!

但是网格没有报告碰撞。有什么想法我哪里出错了吗?

谢谢

-lp

0 投票
1 回答
311 浏览

three.js - 物体旋转时的旋转

[] []

想象一下,这些是汽车的前轮胎,它们沿直线向前旋转。我将如何旋转它们(在转向运动中)而不使它们受到局部(旋转)旋转的影响?

0 投票
1 回答
1545 浏览

javascript - 带有 PhysiJS 物理引擎的 ThreeJS 不会触发碰撞事件

掉落盒子截图

预期结果:一个盒子会掉在地上,它会产生一个警告框,上面写着“盒子刚刚撞到地上”

发生了什么:未创建警报框。冲突时也不会生成相关的 javascript 控制台日志。


我在我的 github repo上共享一个小代码库。您可以克隆它并在您的 chrome 浏览器中自己运行它。您可以检查源代码中physijsBox.addEventListener()**** scripts/app.js **** 文件中的部分。

相关的 PhysiJS 文档:

0 投票
1 回答
429 浏览

javascript - 三.js PointerLockControls 和 Physisjs 碰撞检测

我正在使用 PointerLockControls (完整修改的代码)开发 Three.js 项目。我想为播放器实现碰撞检测。我将通过制作一个新的 Physijs 圆柱体对象,然后将它与相机一起传递给 PointerLockControls 来解决这个问题:

在 PointerLockControls 中,我将外部对象(偏航旋转处理程序)附加到传递的玩家对象,然后在世界中移动玩家对象。

然而,在测试中,玩家对象和相机都穿过地板,或者,如果 translateY 被注释掉,当我试图移动它们时,除了在原地剧烈振动之外什么也不做。

我在哪里设置错了?在我看来,问题来自将 yawObject 附加到玩家对象然后移动它,即使是正确的方法来使用我的设置进行碰撞检测?

0 投票
1 回答
875 浏览

javascript - 转动物体,使它们在 Three.js 中重置它们的 y 旋转

使用 three.js,我正在创建一个游戏,其中的汽车会根据它们的 y 旋转向特定方向移动。一个例子是 90 度。我object.translateZ()曾经将它们向前移动,但我遇到了问题。

我正在使用 physijs 来模拟汽车。相互碰撞的汽车可能会改变它们的 y 旋转(因为碰撞),我想找到一种方法让汽车慢慢地改变它们的旋转回到原来的旋转,就像他们正在转向回到路上一样。没有这个,我的城市很混乱。

这是我已经在使用的代码(这只是其中的一部分):

我想找到一种方法来慢慢改变汽车的旋转,使其与目标旋转相同。

任何帮助表示赞赏!(但某种功能会很完美)

0 投票
1 回答
394 浏览

three.js - ThreeJS 和 PhysiJS 没有触发碰撞事件

我在使用 PhysiJS 和 Three JS 时遇到问题,我无法处理碰撞事件。

Github 上的存储库: https ://github.com/kevrmnd/soccer-physics (在 script.js 文件中)

我有一个地面和一个球,我在球上放了一个事件监听器,当它落在地上但没有输出时,它应该发出警报或记录一些东西。

这是我设置场景和重力的方法:

这是我的理由:

最后是我的球:

我真的不明白为什么这不会触发事件。我需要你的帮助 :-)

0 投票
0 回答
640 浏览

camera - 如何使相机具有碰撞检测 Physi.js 第一人称射击游戏

项目前提

我的 THREE.js 游戏的想法是让玩家在迷宫般的物体中导航并到达出口。我不仅需要立方体和球体的碰撞检测,还需要从 Blender 导入的模型。我考虑过使用 RayCasting,但我决定使用 Physi.js。

问题

,这个想法是给相机一个“身体”,这样玩家就不能像他们只是一个相机对象时那样穿过墙壁或其他物体。然而,我的“玩家”对象似乎失去了它所有的 Physi.js 属性,只要我给它三个.PointerLockControls( player )。我正在做的是创建一个 Physijs.BoxMesh,播放器,并将相机添加到其中。之后,我将“播放器”对象传递给我的 setupControls() 函数。

控件按预期工作,我可以控制播放器网格,将相机粘在上面创建 FPS 视图,但是当我这样做时,我仍然可以通过墙壁和其他物体移动。我什至将相机移回 Z 位置以确认发生了什么,我可以看到玩家网格只是穿过物体,而不是被阻碍或撞倒它们。

解决方案?

如果我删除 setupControls(player),那么 Physi.js 物理开始在玩家网格上工作!它会从重力下坠落,四处弹跳等等。它看起来很酷,但现在我无法控制它!看来我只能拥有一个或另一个大声笑。那么有谁知道我能做些什么来解决这个问题?我所提出的甚至可能吗?我是 THREE.js 的新手,因此非常感谢任何输入!

0 投票
0 回答
170 浏览

three.js - 使用 ammo.js 和 physi.js 时出现错误,我该怎么办?

我想用 Physi.js 做车,但是有一些错误,我在 Chrome 上查看我的演示,我不知道错误是由名为 ammo.js 或 physi.js 的文件引起的,以下是我的代码:

错误信息如下:

我想知道我该如何解决?

0 投票
1 回答
656 浏览

javascript - 加载 physi.js 和 ammo.js 时出错

我正在尝试使用 physijs 开发一个项目。我遇到了这种类型的错误(来自 mozilla firefox 控制台):

  • NetworkError:无法在“js/libs/ammo.js”加载工作脚本

错误日志

我正在尝试修复它,但没有任何结果。这是我关于 physijs 设置的代码片段:

所有 javascript 文件都在 js 目录中,除了 Three.js 构建文件(在构建目录中)。我不知道我的代码有什么问题,我只创建了灯光、地面(遵循 Physijs 规则的复合形状)和一个袋子(我想应用一个锥形扭曲约束,但由于之前的原因不起作用)。

我什至添加了用于初始化场景的代码(如果出现问题):

如何解决此问题并正确导入 Physi.js?

0 投票
2 回答
363 浏览

webpack - Physijs-webpack 库因要求而失败

在 web 应用程序中,我已经有一些用“require”声明并被 webpack 理解的包:

  • 三轨控制

这就是我使用它的方式:

为了添加物理,我尝试添加库 physijs-webpack:

它在“npm run build”处失败,说:找不到模块:错误:无法解析“physijs-webpack”

在控制台(Chrome 开发工具)中显示以下错误:

这是我的 webpack.config 文件:

依赖项是:

你能推荐一下吗,我做错了什么?