MatterJS удалить объектную функцию

Я работаю с помощью вещества.js над небольшим проектом, пытаясь добавлять и удалять объекты из мира материи с помощью функций js.

кажется, что работает функция добавления, метод удаления работает только внутри функции добавления.

var boxes = [];

function addCircle(Cid, Ccolor, Cradius) {
    boxes[Cid] =  Bodies.circle((w/2), (h/2), Cradius, {
            density: 0.0005,
            frictionAir: 0.06,
            restitution: 0.3,
            friction: 0.01,
            render: { fillStyle: Ccolor, strokeStyle: 'rgba(0,0,0,0)',
            lineWidth: 0,
         }
        });
    boxes[Cid].angle = Math.random() * 0.5;
    boxes[Cid].force.y -= 0.0001;
    World.add(engine.world, boxes[Cid]);
    //World.remove(engine.world, boxes[Cid]);  <-- This one works
}


function removeCircle(Cid) {
    //console.log(boxes[Cid]);
    World.remove(engine.world, boxes[Cid]); // <-- This one doesn't
}

консоль выдает ошибку "Не удается прочитать свойство 'тип' неопределенного" для функции удаления. Может кто-нибудь сказать мне, как это решить? Любая помощь и предложения будут действительно заметны.

1 ответ

Чтобы удалить тело из мира, вам нужно использовать Composite.remove(...),

Так что в вашем случае это будет:

Composite.remove(engine.world, boxes[Cid]);
Другие вопросы по тегам