You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
1.5 KiB
88 lines
1.5 KiB
|
4 years ago
|
import {
|
||
|
|
Engine,
|
||
|
|
Render,
|
||
|
|
Runner,
|
||
|
|
Bodies,
|
||
|
|
Composite,
|
||
|
|
Body,
|
||
|
|
Constraint,
|
||
|
|
} from "matter-js";
|
||
|
|
|
||
|
|
/*var Engine = Matter.Engine,
|
||
|
|
World = Matter.World,
|
||
|
|
Bodies = Matter.Bodies;
|
||
|
|
|
||
|
|
var engine, mybox;
|
||
|
|
|
||
|
|
function setup() {
|
||
|
|
createCanvas(400, 400);
|
||
|
|
engine = Engine.create();
|
||
|
|
mybox = Bodies.rectangle(200,200,80,80);
|
||
|
|
World.add(engine.world, [mybox]);
|
||
|
|
console.log(mybox);
|
||
|
|
Matter.Runner.run(engine);
|
||
|
|
}
|
||
|
|
|
||
|
|
function draw() {
|
||
|
|
background(45);
|
||
|
|
rect(mybox.position.x, mybox.position.y, 80, 80);
|
||
|
|
}*/
|
||
|
|
|
||
|
|
// create an engine
|
||
|
|
const engine = Engine.create();
|
||
|
|
|
||
|
|
// create a renderer
|
||
|
|
const render = Render.create({
|
||
|
|
element: document.body,
|
||
|
|
engine: engine,
|
||
|
|
options: {
|
||
|
|
showCollisions: true,
|
||
|
|
showStats: true,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log(document);
|
||
|
|
|
||
|
|
// create two boxes and a ground
|
||
|
|
const test = Composite.create({ label: "test" });
|
||
|
|
const group = Body.nextGroup(true);
|
||
|
|
|
||
|
|
var boxA = Bodies.rectangle(200, 200, 80, 80, {
|
||
|
|
density: 0.005,
|
||
|
|
collisionFilter: {
|
||
|
|
group: group,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
var boxB = Bodies.rectangle(200, 200, 200, 200, {
|
||
|
|
angle: 45,
|
||
|
|
collisionFilter: {
|
||
|
|
group: group,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
|
||
|
|
const con = Constraint.create({
|
||
|
|
bodyA: boxA,
|
||
|
|
bodyB: boxB,
|
||
|
|
length: 30,
|
||
|
|
stiffness: 0.005,
|
||
|
|
damping: 0.02,
|
||
|
|
});
|
||
|
|
|
||
|
|
Composite.add(test, boxA);
|
||
|
|
Composite.add(test, boxB);
|
||
|
|
Composite.add(test, con);
|
||
|
|
|
||
|
|
var ground = Bodies.rectangle(400, 610, 810, 60, { isStatic: true });
|
||
|
|
|
||
|
|
// add all of the bodies to the world
|
||
|
|
Composite.add(engine.world, [test, ground]);
|
||
|
|
|
||
|
|
// run the renderer
|
||
|
|
Render.run(render);
|
||
|
|
|
||
|
|
// create runner
|
||
|
|
var runner = Runner.create();
|
||
|
|
|
||
|
|
// run the engine
|
||
|
|
Runner.run(runner, engine);
|