// module aliases let { Engine, Render, Runner, Bodies, Composite } = Matter; // create an engine let engine = Engine.create({ timing: { timeScale: 0.3, }, }); const width = window.innerWidth > 0 ? window.innerWidth : screen.width; const height = window.innerHeight > 0 ? window.innerHeight : screen.height; // create runner let runner = Runner.create(); let ground = Bodies.rectangle(width / 2, height - 300, width / 2, 60, { isStatic: true, }); // create a renderer let render = Render.create({ element: document.getElementById("canvas"), engine: engine, options: { width: width - 18, height: height - 150, }, }); generateWorld(); function clearTheWorld() { Composite.clear(engine.world); Composite.add(engine.world, ground); } function kaboom() { let manyShapes = new Array(50) .fill() .map(() => Bodies.polygon( Math.random() * 1 + width / 2, Math.random() * 450 + 1, Math.random() * 16 + 1, Math.random() * 80 + 1 ) ); // add all of the bodies to the world Composite.add(engine.world, manyShapes); // run the engine Runner.run(runner, engine); } function addShape() { // to be continued // let oneShape = Bodies.circle(80, 80, 80); let oneShape = Bodies.polygon( // Math.random() * (width / 2) + 1, width / 2, 0, Math.random() * 12 + 1, Math.random() * 150 + 100 ); Composite.add(engine.world, oneShape); // run the engine Runner.run(runner, engine); } function generateWorld() { Composite.add(engine.world, ground); // run the renderer Render.run(render); // run the engine Runner.run(runner, engine); }