physics.js吸引器,零重力和减慢速度



我一直在physics.js中试验吸引子,在零重力下装配一个简单的物体,在一点上有一个吸引子。这创造了一个巨大的小"重力井",可以在这里看到。

简单的平方向量吸引到一个点,在'x':200,'y':200,然后围绕它运行。我正在寻找一种方法,将这个吸引器变成一个更像重力井的地方,这样被吸引的物体会随着时间的推移而减慢,最终在吸引器的点处静止不动,直到它再次与鼠标碰撞或拖动。这有可能吗?

当前创建对象时使用:

 var bodies = [Physics.body('convex-polygon', {
  // place the center of the square at (0, 0)
  x: 150,
  treatment : 'dynamic',
  cof: 0.01,
  mass : 1,
  y: 100,
  vertices: [
    { x: 0, y: 0 },
    { x: 0, y: 200 },
    { x: 200, y: 200 },
    { x: 200, y: 0 }
  ]
})];

吸引器就是这样创建的:

var attractor = Physics.behavior('attractor', {
    order: 0,
    strength: 0.0005
}).applyTo(bodies);
attractor.position({'x':200,'y':200});

影响吸引器的强度似乎没有帮助,它只是改变吸引的速度和随后的轨道。

实际上,我正在寻找一种方法,给整个空间增加摩擦力,我认为这将自然地减慢物体的速度,使其最终在吸引点静止。不知道如何使用PhysicsJS来实现这一点。

  1. 有可能创建您自己的吸引器行为:请参阅本文档。

  2. 如果不想这样做,可以将吸引器的选项min设置为多边形的大小,这样当身体位于吸引器的中心时,力就会停止强度和顺序是可选选项,因此不需要指定它们(根据API)。例如,这应该适用于您:

    world.add(Physics.behavior("attractor", {
        min: 200,
        pos: {"x": 200, "y": 200}
    }));
    

相关内容

  • 没有找到相关文章

最新更新