问题标签 [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 回答
485 浏览

three.js - 相互锁定多个 Three.js 网格

我一直在努力弄清楚如何在一个场景中锁定两个兄弟网格,以便当我旋转它们时它们彼此的关系保持不变。

我知道这可以使用虚拟 Object3D 或通过将一个对象添加到另一个对象来完成,但我需要使用 Physijs,并希望两个网格都能响应场景中的碰撞和其他物理。

这是一个简化的示例,但我很想知道如何让上部球体/圆柱体对的行为与以下代码中的下部对完全相同(下部对具有父/子关系,而上部网格都被添加直接到现场):

在这里小提琴:http: //jsfiddle.net/lostnation/9pd0kpwo/30/

0 投票
1 回答
734 浏览

file - 如何从 Physijs(和 Three.js)中的文件加载碰撞网格

我正在用 WebGL 开发一个简单的游戏。大多数情况下,当我搜索与 Physijs 相关的示例时,我看到人们使用球体和立方体进行碰撞,这是他们在程序本身中制作的。我将如何(如在 Source 引擎中)使用位于文件中的网格进行碰撞?在源引擎中,您将简单地拥有 phy.smd,您将在模型旁边包含它。这甚至可能在这里吗?谢谢!

0 投票
1 回答
1026 浏览

three.js - Physijs - ConvexMesh 壁碰撞检测问题

我正在使用 Three.js 和 Physijs。我有一堵墙应该作为边界,但如果力量足够的话,物体(尤其是盒子)经常会穿过它。检测到碰撞,因为它们没有干净地这样做,但它们开始在某个方向旋转或反弹。有没有办法增加墙可以作用在碰撞物体上的最大力?

墙的所有四个点都在同一平面上,形成一个矩形。网格由两个大三角形面组成。我正在使用凸网格。

将两个三角形分成许多较小的三角形并不能缓解问题。

我可以确认法线没有问题,因为墙壁的阴影正确。

如何在不将墙转换为 BoxMesh 的情况下解决此问题?

我也会感谢解释为什么会发生这种情况。我猜引擎限制了碰撞可以施加的最大力。

0 投票
1 回答
616 浏览

javascript - 关于physijs的轮换问题

我在这个图书馆工作了很短的时间,但我遇到了一个让我很生气的问题。

我有 2 个立方体,一个带有 phisy.js,另一个带有三个.js,当您根据相机的旋转按 A、S、D 或 W 键时,我有一个旋转它们的功能,我的代码就像这个:

在 three.js 多维数据集上工作正常,但在 physi.js 多维数据集上我不工作。

我为此创建了一个演示(我无法在 jsfiddle 上创建它,因为网络工作者)

http://demo.cristobaldiaz.cl/test/

我也将源代码留在了 zip 文件中 ---> http://demo.cristobaldiaz.cl/test/issue.zip

您可以在http://demo.cristobaldiaz.cl/test/src/app.js第 95 行检查运动功能

无论如何,如果你用鼠标旋转相机,你可以检查当你将立方体旋转到红色网格的方向时出现问题。

0 投票
2 回答
641 浏览

three.js - Using export from clara.io with three.js and physijs

I have a scene I exported from clara.io, and I can import it in a three.js scene. I modified MateiralLoader and ObjectLoader to add textures loading, but I'm facing a problem, cause I'd like to replace the standard meshes by physical meshes. I tried changing THREE.Mesh in ObjectLoader.js by Physijs.BoxMesh (most of the scene consists in cubes).

The meshes actually display correctly, no error in console, but there's no physics attached to it, no collision. I thought maybe because the clara.io export are geometry and not just CubeGeometry, it might be a problem for physijs... I don't know, and I didn't find anything related. Could you maybe just give a direction for me to search? Thanks!

Here are samples of my code:

The script to export from clara.io, given on their website:

So I modified ObjectLoader from three.js: at line 287, in the case of loading a Mesh, i tried replacing this:

By this:

And I also tried:

Or:

I never gets physics (especially collisions) working, although the objects are well displayed in the scene. But collisions work well with for example a cube created directly from the script, using THREE.BoxGeometry, then using it with Physijs.BoxMesh.

0 投票
1 回答
788 浏览

three.js - Physijs Three.js - 设置对象的最大速度

嗨,我正在使用一个简单的盒子,我在每一帧都应用一个脉冲来让它移动

但是我想限制它在一个方向上的速度,这样它就不会飞走——但我无法找到一种方法,因为我在文档中找不到任何东西。

Physijs可以做到这一点吗?

0 投票
1 回答
349 浏览

javascript - 扩展 Physijs.Mesh

我正在与 Physijs 合作创建一个简单的 fps。如果没有 Physijs,我将创建一个 Player 对象并使用下面的代码来扩展THREE.Mesh该类。

然后我会实例化一个 Player 并将相机添加到它以实现第一人称视觉。但是,我必须为 Player 编写所有碰撞检测程序,这样他就不会从地板上掉下来。我可以new Physijs.BoxMesh用于地板,但是播放器呢?如何使用 Physijs 创建一个应用了物理的“玩家”类?我尝试了类似... Physijs.Mesh.apply(...)... and的东西Object.create(Physijs.Mesh.prototype),但这不起作用。

感谢您的任何反馈。

0 投票
1 回答
2910 浏览

javascript - Physijs 和 setLinearVelocity:移动物体

2015 年 9 月 2 日 - 更新:下面的代码适用于与setLinearVelocity()我有同样问题的任何人。下面提供了带有固定代码的原始问题...

我创建了一个由Physijs.BoxMesh. 玩家有第一人称视觉(现在是第三人称,所以我可以在故障排除时看到网格)并且可以旋转相机视图并将玩家移动到不同的方向。旋转效果很好,但我无法让网格移动。我setLinearVelocity()用于运动。

使用 console.log(...getLinearVelocity) 后,我可以看到速度正在正确更新。我究竟做错了什么?

播放器.js

主.js

0 投票
1 回答
167 浏览

three.js - Physijs 抖动网格和错误旋转?

我正在用 three.js 制作游戏,我有 2 个问题。1. 我有一个立方体,它被推动,但每隔几秒钟它就会“颤抖”一点。为什么?。2. 当我单击向左或向右箭头键时,立方体意味着在其 Y 轴上旋转,而不是单向旋转,它有时会向单向旋转一点,然后再向另一向旋转?

0 投票
2 回答
1065 浏览

javascript - 三.JS FPS控制扫射左右

我正在设置一个简单的演示来测试 FPS 的播放器控件。我让鼠标旋转相机,播放器可以用 WASD 移动。我的问题是我需要什么算法才能让玩家能够相对于相机所面对的方向左右移动?向前和向后移动的控件效果很好,但是我在尝试使左右运动正常工作时遇到了麻烦。

我正在使用 THREE.JS 和 PhysiJS(物理引擎)。

这是我下面的一段代码......

左右控件设置玩家相对于世界的位置。例如,如果我按住“A”,播放器将开始向屏幕左侧移动,但如果我用鼠标旋转相机,播放器将移动到屏幕中。我希望玩家的左右位置相对于相机的方向更新,所以从玩家的角度来看,他们总是向左或向右扫射。

感谢您的任何帮助!