Example #1
0
        /// <summary>
        /// This is the same lightning System as Flare/mp_lightning from the Editor.
        /// </summary>
        public void MakeLighting()
        {
            puLightningBolt      = puManager.CreateParticleSystem("TestLightningBolt", mgr);
            puLightningBoltScene = mgr.RootSceneNode.CreateChildSceneNode("LightningBoltScene");
            puLightningBoltScene.AttachObject(puLightningBolt);


            ParticleTechnique puLightningBoltT = puLightningBolt.CreateTechnique();

            puLightningBoltT.VisualParticleQuota = 5;
            puLightningBoltT.MaterialName        = "mp_flare_lightning_bolt_1x2";
            puLightningBoltT.DefaultWidth        = 200;
            puLightningBoltT.DefaultHeight       = 200;

            MParticleUniverse.ParticleRenderers.BillboardRenderer renderer = (MParticleUniverse.ParticleRenderers.BillboardRenderer)puLightningBoltT.GetRenderer();
            renderer.TextureCoordsColumns  = 2;
            renderer.BillboardRotationType = BillboardRotationType.BBR_VERTEX;

            MParticleUniverse.ParticleEmitters.PointEmitter pe = (MParticleUniverse.ParticleEmitters.PointEmitter)puLightningBoltT.CreateEmitter("Point");
            DynamicAttributeFixed peRate = new DynamicAttributeFixed();

            peRate.SetValue(9);
            pe.DynEmissionRate = peRate;
            DynamicAttributeRandom petime_to_live = new DynamicAttributeRandom();

            petime_to_live.Min    = 0.3f;
            petime_to_live.Max    = 0.6f;
            pe.DynTotalTimeToLive = petime_to_live;
            DynamicAttributeFixed peVelocity = new DynamicAttributeFixed();

            peVelocity.SetValue(0);
            pe.DynVelocity = peVelocity;
            DynamicAttributeFixed peDuration = new DynamicAttributeFixed();

            peDuration.SetValue(0.7f);
            pe.DynDuration = peDuration;
            pe.DynDurationSet(true);
            pe.ParticleTextureCoordsRangeEnd = 1;

            MParticleUniverse.ParticleAffectors.ColourAffector ca = (MParticleUniverse.ParticleAffectors.ColourAffector)puLightningBoltT.CreateAffector("Colour");
            ca.AddColour(0, new Mogre.ColourValue(1, 1, 1, 1));
            ca.AddColour(0.1f, new Mogre.ColourValue(1, 1, 1, 1));
            ca.AddColour(1, new Mogre.ColourValue(0, 0, 0, 1));
            ca.ColourOperation = MParticleUniverse.ParticleAffectors.ColourAffector.ColourOperations.CAO_MULTIPLY;
            ////puLightningBoltT.AddAffector(ca);


            MParticleUniverse.ParticleObservers.OnClearObserver oco = (MParticleUniverse.ParticleObservers.OnClearObserver)puLightningBoltT.CreateObserver("OnClear");
            MParticleUniverse.ParticleEventHandlers.DoStopSystemEventHandler dsseh = (MParticleUniverse.ParticleEventHandlers.DoStopSystemEventHandler)oco.CreateEventHandler("DoStopSystem");
        }
Example #2
0
        public void Lesson2()
        {
            puLightningBolt = puManager.CreateParticleSystem("puLesson2", mgr);
            SceneNode scene = mgr.RootSceneNode.CreateChildSceneNode("puLesson2Scene");

            scene.AttachObject(puLightningBolt);

            //puLightningBolt.IsKeepLocal = true;
            ParticleTechnique puLightningBoltT = puLightningBolt.CreateTechnique();

            //ParticleTechnique puLightningBoltT = puLightningBolt.GetTechnique(0);
            puLightningBoltT.MaterialName = "ParticleUniverse/Flare";
            //puLightningBoltT.SetRenderer("Billboard");
            MParticleUniverse.ParticleEmitters.PointEmitter pe = (MParticleUniverse.ParticleEmitters.PointEmitter)puLightningBoltT.CreateEmitter("Point");
            //puLightningBolt.SetDebugDisplayEnabled(true);
            DynamicAttributeFixed emissionRate = new DynamicAttributeFixed();

            emissionRate.SetValue(60);
            pe.DynEmissionRate = emissionRate;

            DynamicAttributeRandom emissionVelocity = new DynamicAttributeRandom();

            emissionVelocity.Min = 50;
            emissionVelocity.Max = 300;
            pe.DynVelocity       = emissionVelocity;

            DynamicAttributeRandom emissionDimentions = new DynamicAttributeRandom();

            emissionDimentions.Min      = 50;
            emissionDimentions.Max      = 150;
            pe.DynParticleAllDimensions = emissionDimentions;

            MParticleUniverse.ParticleAffectors.ColourAffector colAffector = (MParticleUniverse.ParticleAffectors.ColourAffector)puLightningBoltT.CreateAffector("Colour");
            colAffector.AddColour(0, ColourValue.Black);
            colAffector.AddColour(0, new ColourValue(0.929412f, 0.0196078f, 0.909804f, 1f));

            MParticleUniverse.ParticleAffectors.LinearForceAffector lforceAffector = (MParticleUniverse.ParticleAffectors.LinearForceAffector)puLightningBoltT.CreateAffector("LinearForce");
            lforceAffector.ForceVector = new Vector3(100, -100, 0);
        }