poopy

 avatar
unknown
javascript
4 years ago
2.8 kB
10
Indexable
var Engine = Matter.Engine,
    Render = Matter.Render,
    Events = Matter.Events,
    MouseConstraint = Matter.MouseConstraint,
    Mouse = Matter.Mouse,
    World = Matter.World,
    Bodies = Matter.Bodies;

var canvas = document.getElementById("matterCanvas")

// create an engine
var engine = Engine.create(),
    world = engine.world;

    engine.world.gravity.y = 0;

    
// create a renderer
var render = Render.create({
    canvas: canvas,
    engine: engine,
    options: {
        wireframes: false,
        background: 'transparent',
        width: window.innerWidth,
        height: window.innerHeight
    }
});




// create bounds
var ground = Bodies.rectangle(
  (window.innerWidth / 2) + 160, window.innerHeight + 80, window.innerWidth + 320, 160,{render: { fillStyle: '#080808'}, isStatic: true });
var wallLeft = Bodies.rectangle( -80, window.innerHeight / 2, 160,   window.innerHeight, { isStatic: true });
var wallRight = Bodies.rectangle(window.innerWidth + 80, window.innerHeight / 2, 160, 1200, { isStatic: true })
var roof = Bodies.rectangle(
  (window.innerWidth / 2) + 160, -80, window.innerWidth + 320, 160, { isStatic: true })

// Make shapes
var box1 = Bodies.rectangle(70, 500, 150, 150, {render: {fillStyle: "#344FEB"}})
    box1.restitution = .5;

var box2 = Bodies.rectangle(70, 500, 250, 250, {render: {fillStyle: "#EB34E5"}})
    box2.restitution = .5;

var box3 = Bodies.rectangle(70, 500, 300, 300, {render: {fillStyle: "#13C233"}})
    box3.restitution = .5;

window.addEventListener('resize', () => { 
    render.canvas.width = window.innerWidth;
    render.canvas.height = window.innerHeight;

});

// Original Shape
// var illustration = Bodies.rectangle(70, 500, 133, 40, {render: { fillStyle: arts}, chamfer: {radius: 20}})


// add all of the bodies to the world
World.add(engine.world, [
  ground, wallLeft, wallRight, roof, box1, box2, box3
]);

// add mouse control
var mouse = Mouse.create(render.canvas),
    mouseConstraint = MouseConstraint.create(engine, {
      mouse: mouse,
      constraint: {
        stiffness: 0.2,
        render: {
          visible: false
        }
      }
    });

World.add(world, mouseConstraint);

// keep the mouse in sync with rendering
render.mouse = mouse;

// Allow page scrolling in matter.js window
mouse.element.removeEventListener("mousewheel", mouse.mousewheel);
mouse.element.removeEventListener("DOMMouseScroll", mouse.mousewheel);

// Detect clicks vs. drags
let click = false;

document.addEventListener('mousedown', () => click = true);
document.addEventListener('mousemove', () => click = false);
document.addEventListener('mouseup', () => console.log(click ? 'click' : 'drag'));

// run the engine
Engine.run(engine);

// run the renderer
Render.run(render);





Editor is loading...