Skip to content

Instantly share code, notes, and snippets.

@learyjk
Created March 20, 2022 04:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save learyjk/2b29433e77ae8402a2213c4df97acbdf to your computer and use it in GitHub Desktop.
Save learyjk/2b29433e77ae8402a2213c4df97acbdf to your computer and use it in GitHub Desktop.
Ball Drop with setion matter.js
<div class="section-space">HI</div>
<div class="section-space is-blue">HI</div>
<div class="section-space" id="matter-window">
</div>
<div class="section-space is-blue">HI</div>
var canvas = document.getElementById("matter-window");
$("#matter-window").one("inview", function (event, isInView) {
if (isInView) {
//alert("inview");
// module aliases
w = window.innerWidth;
h = window.innerHeight;
var Engine = Matter.Engine,
Render = Matter.Render,
Runner = Matter.Runner,
Bodies = Matter.Bodies,
Composite = Matter.Composite,
MouseConstraint = Matter.MouseConstraint,
Mouse = Matter.Mouse;
// create an engine
var engine = Engine.create();
// create a renderer
var render = Render.create({
element: canvas,
engine: engine,
options: {
width: w,
height: h,
wireframes: false,
background: "red"
}
});
var circA = Bodies.circle(100, 10, 20, {
render: { fillStyle: "orange" },
restitution: 0.5
});
var ground = Bodies.rectangle(w / 2, h + 10, 50000, 60, {
isStatic: true
});
// add all of the bodies to the world
Composite.add(engine.world, [circA, ground]);
// run the renderer
Render.run(render);
// create runner
var runner = Runner.create();
// run the engine
Runner.run(runner, engine);
// add mouse control
var mouse = Mouse.create(render.canvas),
mouseConstraint = MouseConstraint.create(engine, {
mouse: mouse,
constraint: {
stiffness: 0.2,
render: {
visible: true
}
}
});
Composite.add(engine.world, mouseConstraint);
// keep the mouse in sync with rendering
render.mouse = mouse;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.18.0/matter.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/protonet-jquery.inview/1.1.2/jquery.inview.min.js"></script>
.section-space {
background-color: transparent;
border-style: solid;
border-width: 1px;
height: 300px;
}
.is-blue {
background-color: lightblue;
}
#matter-window {
height: 100vh;
}
@learyjk
Copy link
Author

learyjk commented Mar 20, 2022

initial working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment