我目前正在使用Cannon.js和Three.js来模拟物理,特别是碰撞。
我有一个旋转的‘旋转臂’,它经常在它的Y轴上旋转,使用以下代码:
angularVelocity: new CANNON.Vec3(0,5,0) fixedRotation: true
我有一种方法,创建50个球体,并在每个球体上设定一个速度,使它们进入旋转器。当球体被击中时,它会变成红色。
问题是,一些球体似乎直滚通过旋臂,而有些球体的影响很小,这导致了奇怪的结果。
是否有什么东西我已经错过或需要采取不同的行动,以确保所有的球击中和碰撞旋转臂?
发布于 2018-09-10 04:14:18
尝试增加对象(在本例中是球体)、大小、var sphereShape = new CANNON.Sphere(1);
和world子步骤,this.world.step(1 / 60, 40);
默认为10。当增加球体半径时,不要忘记在y
轴let y = 1;
上移动它们。
大多数可能的物体太小,移动得足够快,以至于计算也变得不准确。
从性能的角度来看,最好是增加对象的大小,而不是计算子步骤。但无论如何都要用测试来验证。
https://stackoverflow.com/questions/52257305
复制相似问题