问题描述
找到答案了吗? 有谁知道如何解决这个问题? 我当时在上网,但似乎没有解决方案。 我发现的唯一东西是旧的未完成的提案。
如果身体开始移动太快或超出范围,我试图停止它:
var frame = () => {
if(condition){
this.Body.applyForce(body,position,force);
}
window.requestAnimationFrame(frame);
}
frame();
但是我不知道有多少力量来阻止它。我试图将速度用作反作用力,但是没有适当的位置参数值,我无法成功。
在哪里可以从中获得正确的反作用力值,正确应用位置参数的值将是什么?
以及如何在与某些物体(如墙)的碰撞中施加反作用力? 在与墙壁碰撞时施加反力也有意义吗?通过墙壁的物体甚至会与它们碰撞吗?
亲切的问候, 斯拉维克
解决方法
您最好的选择是:
- 增加碰撞对象的大小。
或
- 使用
engine.positionIterations = x
(其中engine = Matter.Engine.create()
)来增加每次迭代的位置计算,并使用engine.velocityIterations = y
来增加每次迭代的速度计算。默认值分别为6和4。
请注意,更改这些设置会影响性能,因此需要进行一些调整。
这些属性可以在documentation上找到。