Jar*_*ski 5 javascript matter.js
我专门寻找在世界重力(x 和 y)为 0 时有效的主体选项。我当前的主体选项如下:
physics: {
frictionAir: 0,
friction: 0,
frictionStatic: 0,
inertia: Infinity,
restitution: 1,
label: 'circle'+Date.now()+Math.random(),
collisionFilter: {
mask: 0x001
},
},
Run Code Online (Sandbox Code Playgroud)
尝试了各种组合,包括连续应用 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
}
Run Code Online (Sandbox Code Playgroud)
但物体只是(缓慢地)移动到盒子(由静态矩形组成)的侧面,然后沿着它们滑动到其角落,或者完全停止而根本不弹跳。设置 setAngularVelocity 确实会使物体反弹,但每次碰撞后的方向和速度就会变得不符合预期。
感谢您的时间。
贾里德
小智 0
您需要将frictionStatic设置为1
physics: {
frictionAir: 0,
friction: 0,
frictionStatic: 1,
inertia: Infinity,
restitution: 1,
label: 'circle'+Date.now()+Math.random(),
collisionFilter: {
mask: 0x001
},
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3326 次 |
| 最近记录: |