Matter.js Как продолжать добавлять тела на холст

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), и каждый раз, когда я нажимаю на нее, она добавляет новый круг в Мир.

1 ответ

Решение

Казалось бы, "шар" - это экземпляр, созданный из тел. Вы должны сделать экземпляр для каждого шара, который вы хотите добавить в мир.

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());
})
Другие вопросы по тегам