javascript - 在尊重 Three.js 中的下一个相邻网格的碰撞时移动一个盒子

标签 javascript three.js collision-detection game-engine game-physics

找到了很多物理引擎,但没有一个能直接满足我的需求。 我试图找到一种简单的方法来推拉箱子,包括碰撞检测,它在移动时尊重下一个相邻的网格碰撞。

需要理解的一些用例:

除了盒子 1 之外的所有盒子都是可移动的。

将盒子 4 向西推或拉:

  • 应该在碰撞时将方框 3 向西移动。
  • 当盒子 3 撞到盒子 2 时,盒子 3 和 4 不能向西移动。

将 2、3 或 4 推向北:

  • 当它碰到盒子 2 时应该停止,因为盒子 1 是不可移动的。

应该不可能用一个盒子推或拉 2 个碰撞的盒子。

也许不是最好的问题...我可以从头开始编写这样的逻辑,但这将以相当复杂的代码结束:)而且我想知道以前是否没有人解决过类似的问题。 是否存在使用现有物理引擎或 three.js 插件实现此类逻辑的简单方法?

enter image description here

希望问题的表述足够好,以便任何人都能理解。 如果您知道著名的抱石冲刺游戏,也许会更容易。

Boulder Dash 1 可以在两个方向上移动两个岩石。

enter image description here 不可能移动一 block 石头。

在我的例子中,应该可以移动 2 个碰撞的岩石/立方体,但不能移动 3 个。

最佳答案

所以基本上你想让某些物体在不同的点不可移动。你可以用 physi.js 来做到这一点.只需增加物体的质量,使其相对于其他物体变得如此重,以至于无法移动。

关于javascript - 在尊重 Three.js 中的下一个相邻网格的碰撞时移动一个盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449382/

相关文章:

javascript - 如何从 JavaScript 的 JSON 数据以 HTML 格式显示图像

Javascript - 在函数中添加 onclick

javascript - 动画 jQuery 状态不成立

three.js - 3d-force-graph 和 Three.js - 将几何发光/大气 Material /简单纹理添加到各个节点和节点组

javascript - 带碰撞检测的 Canvas 滚动

带角的 2D 球碰撞

javascript - 使用 jQuery 处理这些数据的正确方法是什么?

javascript - ThreeJS改变Camera的旋转焦点

javascript - Dat GUI + Three.js 获取用户输入的文本以创建实时更新的 3D 文本几何图形

安卓游戏开发 : Collision Detection Failing