| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 'atomic component';
- 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(Atomic.TouchMoveEvent(function(event) {
- createButterflyNode([event.x, event.y]);
- }));
- self.subscribeToEvent(Atomic.MultiGestureEvent(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 mousePos = Atomic.input.getMousePosition();
- createButterflyNode(mousePos);
- //if Right mouse button WAS pressed once
- } else if (Atomic.input.getMouseButtonPress(Atomic.MOUSEB_RIGHT)) {
- 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;
- }
- };
|