0
0
Fork 0
mirror of https://github.com/liabru/matter-js.git synced 2025-01-20 17:10:11 -05:00

update Example.manipulation

This commit is contained in:
liabru 2021-12-31 11:06:49 +00:00
parent ec38638711
commit 5ddac71316

View file

@ -5,7 +5,6 @@ Example.manipulation = function() {
Render = Matter.Render, Render = Matter.Render,
Runner = Matter.Runner, Runner = Matter.Runner,
Body = Matter.Body, Body = Matter.Body,
Common = Matter.Common,
Events = Matter.Events, Events = Matter.Events,
MouseConstraint = Matter.MouseConstraint, MouseConstraint = Matter.MouseConstraint,
Mouse = Matter.Mouse, Mouse = Matter.Mouse,
@ -36,20 +35,24 @@ Example.manipulation = function() {
Runner.run(runner, engine); Runner.run(runner, engine);
// add bodies // add bodies
var bodyA = Bodies.rectangle(100, 200, 50, 50, { isStatic: true, render: { fillStyle: '#060a19' } }), var bodyA = Bodies.rectangle(100, 300, 50, 50, { isStatic: true, render: { fillStyle: '#060a19' } }),
bodyB = Bodies.rectangle(200, 200, 50, 50), bodyB = Bodies.rectangle(200, 200, 50, 50),
bodyC = Bodies.rectangle(300, 200, 50, 50), bodyC = Bodies.rectangle(300, 200, 50, 50),
bodyD = Bodies.rectangle(400, 200, 50, 50), bodyD = Bodies.rectangle(400, 200, 50, 50),
bodyE = Bodies.rectangle(550, 200, 50, 50), bodyE = Bodies.rectangle(550, 200, 50, 50),
bodyF = Bodies.rectangle(700, 200, 50, 50), bodyF = Bodies.rectangle(700, 200, 50, 50),
bodyG = Bodies.circle(400, 100, 25, { render: { fillStyle: '#060a19' } }), bodyG = Bodies.circle(400, 100, 25, { render: { fillStyle: '#060a19' } });
partA = Bodies.rectangle(600, 200, 120 * 0.8, 50 * 0.8, { render: { fillStyle: '#060a19' } }),
// add compound body
var partA = Bodies.rectangle(600, 200, 120 * 0.8, 50 * 0.8, { render: { fillStyle: '#060a19' } }),
partB = Bodies.rectangle(660, 200, 50 * 0.8, 190 * 0.8, { render: { fillStyle: '#060a19' } }), partB = Bodies.rectangle(660, 200, 50 * 0.8, 190 * 0.8, { render: { fillStyle: '#060a19' } }),
compound = Body.create({ compound = Body.create({
parts: [partA, partB], parts: [partA, partB],
isStatic: true isStatic: true
}); });
Body.setPosition(compound, { x: 600, y: 300 });
Composite.add(world, [bodyA, bodyB, bodyC, bodyD, bodyE, bodyF, bodyG, compound]); Composite.add(world, [bodyA, bodyB, bodyC, bodyD, bodyE, bodyF, bodyG, compound]);
Composite.add(world, [ Composite.add(world, [
@ -79,10 +82,21 @@ Example.manipulation = function() {
// make bodyA move up and down // make bodyA move up and down
var py = 300 + 100 * Math.sin(engine.timing.timestamp * 0.002); var py = 300 + 100 * Math.sin(engine.timing.timestamp * 0.002);
// manual update velocity required for older releases
if (Matter.version === '0.18.0') {
Body.setVelocity(bodyA, { x: 0, y: py - bodyA.position.y });
Body.setVelocity(compound, { x: 0, y: py - compound.position.y });
Body.setAngularVelocity(compound, 1 * Math.PI * timeScale);
}
// move body and update velocity
Body.setPosition(bodyA, { x: 100, y: py }, true); Body.setPosition(bodyA, { x: 100, y: py }, true);
// make compound body move up and down and rotate constantly // move compound body move up and down and update velocity
Body.setPosition(compound, { x: 600, y: py }, true); Body.setPosition(compound, { x: 600, y: py }, true);
// rotate compound body and update angular velocity
Body.rotate(compound, 1 * Math.PI * timeScale, null, true); Body.rotate(compound, 1 * Math.PI * timeScale, null, true);
// after first 0.8 sec (simulation time) // after first 0.8 sec (simulation time)