Browse Source

Added touch input to the butterflies!

rsredsq 10 years ago
parent
commit
6e7cb42221
1 changed files with 34 additions and 19 deletions
  1. 34 19
      Butterflies/Resources/Components/Spawner.js

+ 34 - 19
Butterflies/Resources/Components/Spawner.js

@@ -2,36 +2,51 @@
 
 var viewport = Atomic.renderer.getViewport(0);
 
+//cache resource
 var particleEffect = Atomic.cache.getResource("ParticleEffect2D", "Particles/particle.pex");
 
 exports.component = function(self) {
 
+    self.start = function() {
+        //touch control
+        self.subscribeToEvent("TouchMove", function(event) {
+            createButterflyNode([event.x, event.y]);
+        });
+        self.subscribeToEvent("MultiGesture", function(event) {
+            if(event.numFingers >= 2) {
+                createButterflyParticle([event.centerX, event.centerY]);
+            }
+        });
+    }
+
     self.update = function(timeStep) {
         //if Left mouse button is pressed
         if (Atomic.input.getMouseButtonDown(Atomic.MOUSEB_LEFT)) {
-
-            var mpos = Atomic.input.getMousePosition();
-            //project mouse screen position to the world position
-            var pos = viewport.screenToWorldPoint(mpos[0], mpos[1], 0);
-            //create butterfly node
-            var butterfly = self.scene.createChild("Butterfly");
-            butterfly.position2D = pos;
-            butterfly.createJSComponent("Components/Butterfly.js");
-            
+            var mousePos = Atomic.input.getMousePosition();
+            createButterflyNode(mousePos);
         //if Right mouse button WAS pressed once
         } else if (Atomic.input.getMouseButtonPress(Atomic.MOUSEB_RIGHT)) {
-
-            //create particle emitter
-            var emitter = self.scene.createChild("ButterflyEmitter");
-            var mpos = Atomic.input.getMousePosition();
-            //project mouse screen position to the world position
-            var pos = viewport.screenToWorldPoint(mpos[0], mpos[1], 0);
-            emitter.position2D = pos;
-            var pex = emitter.createComponent("ParticleEmitter2D");
-            pex.effect = particleEffect;
-
+            var mousePos = Atomic.input.getMousePosition();
+            createButterflyParticle(mousePos);
         }
+    }
 
+    function createButterflyNode(pos) {
+      //project mouse screen position to the world position
+      pos = viewport.screenToWorldPoint(pos[0], pos[1], 0);
+      //create butterfly node
+      var butterfly = self.scene.createChild("Butterfly");
+      butterfly.position2D = pos;
+      butterfly.createJSComponent("Components/Butterfly.js");
     }
 
+    function createButterflyParticle(pos) {
+      //create particle emitter
+      var emitter = self.scene.createChild("ButterflyEmitter");
+      //project mouse screen position to the world position
+      pos = viewport.screenToWorldPoint(pos[0], pos[1], 0);
+      emitter.position2D = pos;
+      var pex = emitter.createComponent("ParticleEmitter2D");
+      pex.effect = particleEffect;
+    }
 }