I've got this simple js:
Physics(function( world ){
//Defining object
var renderer = Physics.renderer('canvas', {
el: 'viewport', // id of the canvas element
width: 500,
height: 200
});
var ball = Physics.body('circle', {
x: 250,
y: 0,
radius:10,
restitution: .8,
mass: 3,
vx: 0
});
var box = Physics.body('rectangle',
{
x: 250,
y: 150,
width: 50,
height: 20,
restitution:.5,
treatment: "static"
}
);
// Add them to the world
world.add( renderer );
world.add( ball );
world.add( box );
//Add physical behaviours
world.add( Physics.behavior('constant-acceleration') );//add gravity
world.add( Physics.behavior('body-impulse-response') );//make obdies bounce (react to impulse)
world.add( Physics.behavior('body-collision-detection') );//detect collision between bodies
world.add( Physics.behavior('sweep-prune') );
world.add( Physics.behavior('edge-collision-detection', //dectect collision with edges
{
aabb: Physics.aabb(0, 0, 500, 500),
restitution:.3
}
)
);
//START playing
world.on('render', function( data ){
var renderer = data.renderer;
});
// subscribe to ticker to advance the simulation
Physics.util.ticker.on(function( time, dt ){
world.step( time );
});
world.on('step', function(){
world.render();
console.log(ball.state.vel._[1]);
});
// start the ticker
Physics.util.ticker.start();
});
canvas {border:1px solid;}
<script src="http://wellcaffeinated.net/PhysicsJS/assets/scripts/vendor/physicsjs-0.6.0/physicsjs-full-0.6.0.min.js"></script>
<canvas id="viewport" width="500" height="200"></canvas>
that creates a world with a static platform and a ball falling on it. Ball falls and bounces, then bouncing slows and slows but it never ends. I've setted restitution < 1
in the bodies attributes.
Where am I wrong?
This is a bug with the current version of physicsJS. You're code is correct. Try taking from the 0.7 branch on github. You will need to check out the repo and run "grunt dist".
https://github.com/wellcaffeinated/PhysicsJS/tree/0.7.0
Note this is NOT a 0.7 release. This code is still in development. I suggest monitoring physicsjs and getting the actual 0.7 release when it's ready. Should be soon.