diff --git a/build.js b/build.js index 3a8d2ca..d27fbb4 100644 --- a/build.js +++ b/build.js @@ -470,7 +470,7 @@ }, globalMass: 10, global: function (mass, g) { - return new Vector(0, mass * (g || this.globalMass), 0); + return new Vector(0, -mass * (g || this.globalMass), 0); } }; $__export("default", Gravity); @@ -525,14 +525,8 @@ playing: false, start: function (fn) { Frames.tick(Date.now()); - var canvas = typeof Bolt.configs.canvas === "function" ? Bolt.configs.canvas() : Bolt.configs.canvas; - Bolt._canvas = canvas; - var ctx = canvas.getContext("2d"); (function loop() { reqAnimFrame(function (now) { - ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.fillStyle = "black"; - ctx.fillRect(0, 0, canvas.width, canvas.height); var avg = Frames.tick(now); for (var i = 0, len = Bolt.objects.length; i < len; i++) { @@ -544,10 +538,6 @@ acc.add(force); object.velocity.add(acc.scalar(Frames.elapsed)); object.velocity.scalar(Math.pow(object.damping, Frames.elapsed)); - ctx.beginPath(); - ctx.fillStyle = object.color; - ctx.arc(object.position.x, object.position.y, object.mass, 0, 2 * Math.PI); - ctx.fill(); } } if (fn) fn.apply(this, arguments); @@ -589,16 +579,7 @@ }], execute: function () { Bolt = { - configs: { - globalGravity: true, - canvas: function () { - var canvas = document.createElement("canvas"); - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - document.body.appendChild(canvas); - return canvas; - } - }, + configs: { globalGravity: true }, config: function (o) { for (var i in o) { this.configs[i] = o[i]; diff --git a/build.js.map b/build.js.map index b65cf0c..a211f21 100644 --- a/build.js.map +++ b/build.js.map @@ -1 +1 @@ -{"version":3,"sources":["src/lib/vector.js","src/lib/particle.js","src/lib/gravity.js","src/lib/frames.js","src/lib/play.js","src/main.js"],"names":[],"mappings":"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","file":"/home/mahdi/Documents/Workshop/bolt/build.js"} \ No newline at end of file +{"version":3,"sources":["src/lib/vector.js","src/lib/particle.js","src/lib/gravity.js","src/lib/frames.js","src/lib/play.js","src/main.js"],"names":[],"mappings":"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","file":"/home/mahdi/Documents/Workshop/bolt/build.js"} \ No newline at end of file diff --git a/demos/fireworks/demo.js b/demos/fireworks/demo.js index 01b1259..9ee756b 100644 --- a/demos/fireworks/demo.js +++ b/demos/fireworks/demo.js @@ -1,32 +1,69 @@ +var scene = new THREE.Scene(), + camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000), + renderer = new THREE.WebGLRenderer(), + light = new THREE.HemisphereLight(0xf0f0f0, 0x404040); + +camera.position.z = 1000; +renderer.setSize(window.innerWidth, window.innerHeight); + +var cubeGeometry = new THREE.SphereGeometry(7, 8, 8), + redMaterial = new THREE.MeshLambertMaterial({color: 0xFF2200}), + orangeMaterial = new THREE.MeshLambertMaterial({color: 0xFFFB00}); + +scene.add(light); + +document.body.appendChild(renderer.domElement); + + function Firework(props) { - var particle = Bolt.Particle(props); - particle.type = props.type || 0; - particle.age = Math.random() * (5 - 3) + 3; - particle.damping = 0.93; - particle.velocity = props.velocity || Bolt.Vector.random([-8, 8], [-60, -12], [-5, 0]); - particle.color = props.color; - return particle; + this.particle = Bolt.Particle(props); + this.type = props.type || 0; + this.age = Math.random() * (5 - 3) + 3; + this.particle.damping = 0.93; + this.particle.velocity = props.velocity || Bolt.Vector.random([-8, 8], [60, 12], [-8, 8]); + + this.view = new THREE.Mesh(cubeGeometry, this.type === 0 ? redMaterial : orangeMaterial); + if(this.type === 1) { + this.view.scale.x = 0.5; + this.view.scale.y = 0.5; + this.view.scale.z = 0.5; + } + this.render(); + scene.add(this.view); } +Firework.prototype.render = function() { + this.view.position.x = this.particle.position.x; + this.view.position.y = this.particle.position.y; + this.view.position.z = this.particle.position.z; +}; + +Firework.prototype.destroy = function() { + this.particle.destroy(); + scene.remove(this.view); + this.view = null; +}; + var fireworks = []; var count = 0; Bolt.Play.start(function() { - count++; + if(count === 8) { fireworks.push(new Firework({ type: 0, - position: Bolt.Vector(Bolt._canvas.width/2, Bolt._canvas.height/2, 0), - color: '#FF3636', - mass: 2 + position: Bolt.Vector(window.innerWidth/4, 0, 0), + mass: 4 })); count = 0; } for(var i = 0, len = fireworks.length; i < len; i++) { var fw = fireworks[i]; + fw.render(); + fw.age -= Bolt.Frames.elapsed; if(fw.age < 0) { fw.destroy(); @@ -36,20 +73,50 @@ Bolt.Play.start(function() { if(fw.type === 1) continue; - for(var x = 0; x < 5; x++) { - var vel = fw.velocity.clone().add(Bolt.Vector.random([-8, 8], [-10, 10], [-5, 5])); + for(var x = 0; x < 3; x++) { + var vel = fw.particle.velocity.clone().add(Bolt.Vector.random([-8, 8], [-10, 10], [-8, 8])); var childFirework = new Firework({ type: 1, - position: fw.position.clone(), + position: fw.particle.position.clone(), velocity: vel, - color: '#FFA400', - mass: 1 + mass: 2 }); fireworks.push(childFirework); } } } + renderer.render(scene, camera); }).then(function() { +}); + +var isMouseDown = false, + initial = {x: 0, y: 0}, + last = {x: 0, y: 0}; + +renderer.domElement.style.setProperty('cursor', 'pointer'); + +renderer.domElement.addEventListener('mousedown', function(e) { + isMouseDown = true; + initial.x = e.pageX; + initial.y = e.pageY; + renderer.domElement.style.setProperty('cursor', 'grab'); +}); + +renderer.domElement.addEventListener('mousemove', function(e) { + if(!isMouseDown) return; + camera.position.x = last.x + initial.x - e.pageX; + camera.position.y = last.y + -(initial.y - e.pageY); +}); + +renderer.domElement.addEventListener('mouseup', function(e) { + isMouseDown = false; + last.x = camera.position.x; + last.y = camera.position.y; + renderer.domElement.style.setProperty('cursor', 'pointer'); +}); + +renderer.domElement.addEventListener('wheel', function(e) { + camera.position.z += e.deltaY * 10; }); \ No newline at end of file diff --git a/demos/fireworks/index.html b/demos/fireworks/index.html index 84a6905..d21d5ce 100644 --- a/demos/fireworks/index.html +++ b/demos/fireworks/index.html @@ -8,6 +8,7 @@
+