找到了很多物理引擎,但没有一个能直接满足我的需求。 我试图找到一种简单的方法来推拉箱子,包括碰撞检测,它在移动时尊重下一个相邻的网格碰撞。
需要理解的一些用例:
除了盒子 1 之外的所有盒子都是可移动的。
将盒子 4 向西推或拉:
- 应该在碰撞时将方框 3 向西移动。
- 当盒子 3 撞到盒子 2 时,盒子 3 和 4 不能向西移动。
将 2、3 或 4 推向北:
- 当它碰到盒子 2 时应该停止,因为盒子 1 是不可移动的。
应该不可能用一个盒子推或拉 2 个碰撞的盒子。
也许不是最好的问题...我可以从头开始编写这样的逻辑,但这将以相当复杂的代码结束:)而且我想知道以前是否没有人解决过类似的问题。 是否存在使用现有物理引擎或 three.js 插件实现此类逻辑的简单方法?
希望问题的表述足够好,以便任何人都能理解。 如果您知道著名的抱石冲刺游戏,也许会更容易。
可以在两个方向上移动两个岩石。
不可能移动一 block 石头。
在我的例子中,应该可以移动 2 个碰撞的岩石/立方体,但不能移动 3 个。
最佳答案
所以基本上你想让某些物体在不同的点不可移动。你可以用 physi.js 来做到这一点.只需增加物体的质量,使其相对于其他物体变得如此重,以至于无法移动。
关于javascript - 在尊重 Three.js 中的下一个相邻网格的碰撞时移动一个盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449382/