Browse Source

Merge pull request #105 from JimMarlowe/JM-BFLY-1286

Fix both butterfly examples #1286
JoshEngebretson 9 years ago
parent
commit
1c9cc28f64

+ 22 - 1
Butterflies/CSharp/Resources/Components/Spawner.cs

@@ -20,7 +20,13 @@ public class Spawner : CSComponent
 
 
             for (var i = 0; i < 10; i++)
             for (var i = 0; i < 10; i++)
                 createButterflyNode(new Vector2(mousePos.X, mousePos.Y));
                 createButterflyNode(new Vector2(mousePos.X, mousePos.Y));
-        }        
+        }
+        else if (input.GetMouseButtonDown(Constants.MOUSEB_RIGHT))
+        {
+            var mousePos = input.GetMousePosition();
+
+            createButterflyParticle(new Vector2(mousePos.X, mousePos.Y));
+        }
 
 
     }
     }
 
 
@@ -38,6 +44,21 @@ public class Spawner : CSComponent
 
 
     }
     }
 
 
+    void createButterflyParticle(Vector2 pos)
+    {
+        //project mouse screen position to the world position
+        var screenPos = viewport.ScreenToWorldPoint((int) pos.X, (int) pos.Y, 0);
+
+        //create particle emitter
+        var emitter = Scene.CreateChild("ButterflyEmitter");
+
+        emitter.Position2D = new Vector2(screenPos.X, screenPos.Y);
+
+        var pex = emitter.CreateComponent<ParticleEmitter2D>();
+
+        pex.SetEffect(GetSubsystem<ResourceCache>().GetResource<ParticleEffect2D> ("Particles/particle.pex"));
+
+    }
     Viewport viewport;
     Viewport viewport;
 
 
 
 

+ 3 - 0
Butterflies/JavaScript/Resources/Scripts/main.js

@@ -3,6 +3,9 @@
 // create a scene
 // create a scene
 var scene = new Atomic.Scene();
 var scene = new Atomic.Scene();
 
 
+// assign scene into global so it's not GC'd
+Atomic.Player.currentScene = scene;
+
 // create an octree component
 // create an octree component
 scene.createComponent("Octree");
 scene.createComponent("Octree");