Как исправить ошибку "composite.Add не является функцией", вызванной кодом, еще не запускающимсяJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить ошибку "composite.Add не является функцией", вызванной кодом, еще не запускающимся

Сообщение Anonymous »

Я делаю проект с использованием Matterjs. Однако у меня есть некоторые трудности. Всякий раз, когда я запускаю свой код, он бросает тип ошибки TypeError: composite.Add (...) не является функцией. ошибка при запуске. Оказывается, что ошибка возникает только тогда, когда код для визуализации сцены включен. Я не включил код рендеринга в фрагмент, потому что он был запущен после , по которой ошибочна ошибка. Как мне это исправить, и почему это происходит?

вот мой код: < /p>

Код: Выделить всё

window.addEventListener("DOMContentLoaded", () => {
console.log('loaded')

var Engine = Matter.Engine,
Render = Matter.Render,
Runner = Matter.Runner,
Bodies = Matter.Bodies,
Composite = Matter.Composite,
Body = Matter.Body,
Events = Matter.Events;
World = Matter.World;
var engine = Engine.create({
gravity: {
x: 0,
y: 1,
scale: 0
}
});

world = engine.world;

var w = window.innerWidth;
var h = window.innerHeight;
var canvas = document.getElementById('canvasM');
let ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

let circleA = Bodies.circle(100, 100, 10);
//The line on which the error is thrown. The console says the error occurs on a different line, but this is the only time "Composite.add" is referenced
Composite.add(world, [circleA])
//if I uncomment this line, the code runs fine, but without a renderer
//return
(function render() {
ctx.clearRect(0, 0, 1000, 1000)
var bodies = Composite.allBodies(engine.world);

window.requestAnimationFrame(render);

ctx.beginPath();

for (var i = 0; i < bodies.length; i += 1) {
var vertices = bodies[i].vertices;

ctx.moveTo(vertices[0].x, vertices[0].y);

for (var j = 1; j < vertices.length; j += 1) {
ctx.lineTo(vertices[j].x, vertices[j].y);
}
ctx.lineWidth = 3;
ctx.fill = '#fff';
ctx.strokeStyle = "#000"
ctx.stroke();

}

Matter.Engine.update(engine, 1000 / 60);
})();

})< /code>






Подробнее здесь: https://stackoverflow.com/questions/794 ... ot-yet-run
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»