我正在专门寻找当世界重力(x 和 y)为 0 时可以使用的身体选项。我目前的身体选项如下:
physics: {
frictionAir: 0,
friction: 0,
frictionStatic: 0,
inertia: Infinity,
restitution: 1,
label: 'circle'+Date.now()+Math.random(),
collisionFilter: {
mask: 0x001
},
},
尝试了各种组合,包括连续应用 setVelocity 和/或 applyForce,但这些组合不能按预期工作。我希望只应用一次 setVelocity 会使所有物体永远保持运动。所以在我的update
函数中,我做了这样的事情:
if(!this.setInMotion){
Matter.Body.setVelocity(myBody,
{x: (Math.random() - 0.5) * 2,
y: (Math.random() - 0.5) * 2})
this.setInMotion = true
}
但是身体只是简单地(缓慢地)移动到盒子的侧面(由静态矩形组成),然后沿着它们滑动到角落,或者完全停止而不弹跳。设置 setAngularVelocity 确实会使事情反弹,但是每次碰撞后的方向和速度都不是预期的。
感谢您的时间。
贾里德