我正在使用matter.js作为物理引擎,我发现我可以检测到碰撞。
但是,我不知道如何判断两个物体在发生碰撞后是否相互接触。有没有办法做到这一点?
(在我的特殊情况下,我希望一个球只有在它接触到一块特定的地面时才会跳跃。)
我正在使用matter.js作为物理引擎,我发现我可以检测到碰撞。
但是,我不知道如何判断两个物体在发生碰撞后是否相互接触。有没有办法做到这一点?
(在我的特殊情况下,我希望一个球只有在它接触到一块特定的地面时才会跳跃。)
这是一个很晚的答案,我知道您已经接受了答案,但我刚刚找到了这个非常简单的解决方案。Matter.js 有一个名为 SAT 的模块,它使用分离轴定理检测碰撞。它的单一方法可用于检测两个对象是否发生碰撞:
Matter.SAT.collides(playerObject, groundObject).collided // returns either true or false depending on if the two objects are colliding
使用传感器。
物体本身之间的物体检测根本不是很好,所以至少在你想要检测碰撞的物体之一上放置一个传感器。要么将其牢固地连接到您的身体上,要么找到某种方法对其进行更新,以便它始终移动到您想要跟踪的身体位置并像那样进行碰撞检测。
使用Matter.Collision.collides
并检查它是否为空。
if (Matter.Collision.collides(a, b) != null) {
// collision happened
}