Matter.js如何将物体添加到画布中

4
var ball = Bodies.circle(400, 20, 23, {
    density: 0.0005,
    frictionAir: 0.06,
    restitution: 0.3,       
    friction: 0.01,
    render: {
        sprite: {
            texture: 'face2.png',
        }
    }
});

$('.add').on('click', function() {
    World.add(engine.world, ball);
})

这对我来说可行,它添加了一个圆。但是当我再次单击时,什么都没有发生。

我猜我没有创建一个新的对象。

我的目标是能够按下按钮(.add),每次按下它时,将一个新圆添加到世界中。


@Grimbode,好使了!你为什么删除了你的回答? - Nicolay Hekkens
说实话,那更像是猜测。我会把它放回去。 - kemicofa ghost
1个回答

2
似乎“球”是从Bodies创建的实例。您需要为要添加到世界中的每个球创建一个实例。
var ball = function () {

    return Bodies.circle(400, 20, 23, {
        density: 0.0005,
        frictionAir: 0.06,
        restitution: 0.3,
        friction: 0.01,
        render: {
            sprite: {
                texture: 'face2.png',
            }
        }
    });
}

$('.add').on('click', function () {
    World.add(engine.world, ball());
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接