Skip to content

Commit 9915007

Browse files
committed
added Example.stats
1 parent 119881b commit 9915007

2 files changed

Lines changed: 92 additions & 0 deletions

File tree

examples/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ module.exports = {
3535
sprites: require('./sprites.js'),
3636
stack: require('./stack.js'),
3737
staticFriction: require('./staticFriction.js'),
38+
stats: require('./stats.js'),
3839
stress: require('./stress.js'),
3940
stress2: require('./stress2.js'),
4041
svg: require('./svg.js'),

examples/stats.js

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
var Example = Example || {};
2+
3+
Example.stats = function() {
4+
var Engine = Matter.Engine,
5+
Render = Matter.Render,
6+
Runner = Matter.Runner,
7+
Common = Matter.Common,
8+
Composites = Matter.Composites,
9+
MouseConstraint = Matter.MouseConstraint,
10+
Mouse = Matter.Mouse,
11+
World = Matter.World,
12+
Bodies = Matter.Bodies;
13+
14+
// create engine
15+
var engine = Engine.create(),
16+
world = engine.world;
17+
18+
// create renderer
19+
var render = Render.create({
20+
element: document.body,
21+
engine: engine,
22+
options: {
23+
width: 800,
24+
height: 600,
25+
// show stats and performance monitors
26+
showStats: true,
27+
showPerformance: true
28+
}
29+
});
30+
31+
Render.run(render);
32+
33+
// create runner
34+
var runner = Runner.create();
35+
Runner.run(runner, engine);
36+
37+
// scene code
38+
var stack = Composites.stack(70, 30, 13, 9, 5, 5, function(x, y) {
39+
return Bodies.circle(x, y, 10 + Common.random() * 20);
40+
});
41+
42+
World.add(world, [
43+
stack,
44+
Bodies.rectangle(400, 0, 800, 50, { isStatic: true }),
45+
Bodies.rectangle(400, 600, 800, 50, { isStatic: true }),
46+
Bodies.rectangle(800, 300, 50, 600, { isStatic: true }),
47+
Bodies.rectangle(0, 300, 50, 600, { isStatic: true })
48+
]);
49+
50+
// add mouse control
51+
var mouse = Mouse.create(render.canvas),
52+
mouseConstraint = MouseConstraint.create(engine, {
53+
mouse: mouse,
54+
constraint: {
55+
stiffness: 0.2,
56+
render: {
57+
visible: false
58+
}
59+
}
60+
});
61+
62+
World.add(world, mouseConstraint);
63+
64+
// keep the mouse in sync with rendering
65+
render.mouse = mouse;
66+
67+
// fit the render viewport to the scene
68+
Render.lookAt(render, {
69+
min: { x: 0, y: 0 },
70+
max: { x: 800, y: 600 }
71+
});
72+
73+
// context for MatterTools.Demo
74+
return {
75+
engine: engine,
76+
runner: runner,
77+
render: render,
78+
canvas: render.canvas,
79+
stop: function() {
80+
Matter.Render.stop(render);
81+
Matter.Runner.stop(runner);
82+
}
83+
};
84+
};
85+
86+
Example.stats.title = 'Stats & Performance';
87+
Example.stats.for = '>=0.16.1';
88+
89+
if (typeof module !== 'undefined') {
90+
module.exports = Example.stats;
91+
}

0 commit comments

Comments
 (0)