PhysicsJS - 创造绳索&附上一些东西

时间:2014-06-03 10:43:54

标签: javascript canvas html5-canvas physicsjs

问题#1:
我是PhysicsJS的新手,我试图用“Basket of verlet constraints”的想法制作一根绳子 像这样:JSFiddle
如你所见,这根绳子不自然! (摩擦,绳索,稳定时间和...) 并且通过增加绳索的长度,它变得更糟! 首先我认为,通过增加绳索颗粒的质量,它会更快地减速但是......

var basket = [];
var fpos = window.innerWidth / 2;
var epos = window.innerHeight / 2;
for ( var i = fpos; i < fpos + epos; i += 5 ){

    l = basket.push(
        Physics.body('circle', {
            x: i
            ,y: 50 - (i-fpos)
            ,radius: 1
            ,restitution: 0
            ,mass: 1000
            ,conf: 1
            ,hidden: true
        })
    );

    rigidConstraints.distanceConstraint( basket[ l - 1 ], basket[ l - 2 ], 2 );
}

问题2:
在确定之后,我该如何解决这个问题:
(在绳子的末端附加一个矩形框)

enter image description here

1 个答案:

答案 0 :(得分:5)

您可以添加一个框并将其附加到绳子的末端:

var box = Physics.body('rectangle', {
    x: i
    ,y: 50 - (i-fpos)
    ,width: 60
    ,height: 60
    ,styles: { fillStyle: '#fff' }
});

rigidConstraints.distanceConstraint( basket[ l - 1 ], box, 2 );

world.add(box);

结果是这样的:http://jsfiddle.net/REGCU/14/ 但不幸的是,目前还没有一种方法可以处理你所绘制的盒子边缘的约束。

这是一个悬而未决的问题:https://github.com/wellcaffeinated/PhysicsJS/issues/5