bolt-engine/demos/mouse-gravitation/demo.js
Mahdi Dibaiee f180233e66 Gravity Force
Fixes in demo
2015-01-28 19:36:54 +03:30

68 lines
1.5 KiB
JavaScript

var world = new LiThree.World(),
renderer = new LiThree.WebGLRenderer(window.innerWidth, window.innerHeight, world),
camera = renderer.camera;
camera.position.z -= 10;
var light = new LiThree.Light.Point();
light.diffuseColor.hex = '#16A086';
light.position.x = -10;
light.position.z = -20;
light.position.y = 0;
world.add(light);
// renderer.canvas.style.setProperty('background', 'black');
var mouse = new Bolt.Particle({
position: Bolt.Vector(0, 0, 0),
mass: 1
});
var middle = new Bolt.Vector(window.innerWidth / 2, window.innerHeight / 2, 0);
for(var i = 0; i < 20; i++) {
var p = new Bolt.Particle({
position: middle.clone(),
mass: 100
});
var sphere = new LiThree.ObjectFactory.Sphere(5, 20, 20);
sphere.color.rgb(0.2, 0.2, 0.2);
world.add(sphere);
p.view = sphere;
}
renderer.initShapes();
function syncPositions(particle) {
particle.view.position.x = particle.position.x;
particle.view.position.y = particle.position.y;
particle.view.position.z = particle.position.z;
}
Bolt.configs.globalGravity = false;
Bolt.Play.start(function() {
// i = 1 Ignore mouse
for(var i = 1, len = Bolt.objects.length; i < len; i++) {
var p = Bolt.objects[i];
var mouseGravity = new Bolt.Force.generators.Gravity(p, mouse);
Bolt.Force.add(p, mouseGravity);
syncPositions(p);
}
renderer.draw();
});
document.body.appendChild(renderer.canvas);
renderer.canvas.addEventListener('mousemove', function(e) {
mouse.position.x = e.pageX;
mouse.position.y = e.pageY;
});