コード例 #1
0
        public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary)
        {
            var effect = new ParticleEffect
            {
                Emitters = new EmitterCollection
                                {            
                                     new PointEmitter
                                        {
                                            Budget = 32,
                                            Term = 1.0f,                                            
                                            ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.BulletTrail"),
                                            BlendMode = EmitterBlendMode.Alpha,
                                            ReleaseColour = new ColourRange { Red = 0.0f, Green = 0.5f, Blue = 0.1f },
                                            ReleaseOpacity = 0.0f,
                                            ReleaseQuantity = 1,
                                            ReleaseRotation = new RotationRange 
                                                                {
                                                                    Roll = new Range(0f, 1.5f)
                                                                },
                                            ReleaseScale = new Range(20f, 20f),
                                            ReleaseSpeed = new Range(0f, 100f),
                                            
                                            Modifiers = new ModifierCollection
                                                            {
                                                                new ScaleInterpolator3
                                                                {
                                                                      FinalScale = 0f,
                                                                      InitialScale = 20f,
                                                                      Median = 0.25f,
                                                                      MedianScale = 20f
                                                                },

                                                                new ColourInterpolator2
                                                                    {
                                                                         FinalColour = new Vector3(1f, 0.25f, 0f),
                                                                         InitialColour = new Vector3(0f, 0.5f, 1f)
                                                                    },

                                                                new OpacityInterpolator3
                                                                {
                                                                     InitialOpacity = 0.0f,
                                                                     FinalOpacity = 0.5f,
                                                                     Median = 0.1f,
                                                                     MedianOpacity = 1.0f                                                                      
                                                                }
                                                            },
                                        },                           
                                },
            };

            foreach (var emitter in effect.Emitters)
            {
                emitter.Initialise();
            }

            return effect;
        }
コード例 #2
0
        public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary)
        {
            var effect = new ParticleEffect
            {
                Emitters = new EmitterCollection
                                {            
                                     new PointEmitter
                                        {
                                            Name = "Sparks",
                                            Budget = 35,
                                            Term = 0.75f,                                            
                                            ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Sparks"),
                                            BlendMode = EmitterBlendMode.Alpha,
                                            ReleaseColour = new ColourRange { Red = 1f, Green = new Range(0.4f, 0.8f), Blue = 0f },
                                            ReleaseOpacity = 1.0f,
                                            ReleaseQuantity = 35,
                                            ReleaseRotation = new RotationRange 
                                                                {
                                                                    Roll = new Range(0f, 0f)
                                                                },
                                            ReleaseScale = new Range(3f, 7f),
                                            ReleaseSpeed = new Range(0f, 250f),
                                            
                                            Modifiers = new ModifierCollection
                                                            {
                                                                new OpacityInterpolator2
                                                                {
                                                                     FinalOpacity = 0f,
                                                                     InitialOpacity = 1f
                                                                },
                                                                
                                                                new DampingModifier
                                                                {
                                                                     DampingCoefficient = 2f
                                                                }
                                                            },
                                        },                           
                                },
            };

            effect.Emitters["Sparks"].Controllers.AddFirst(new CooldownController { CooldownPeriod = 5.0f });

            foreach (var emitter in effect.Emitters)
            {
                emitter.Initialise();
            }

            return effect;
        }
コード例 #3
0
        public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary)
        {
            var effect = new ParticleEffect
            {    
                            Emitters = new EmitterCollection
                                {            
                                     new BoxEmitter
                                        {
                                            Name = "SmallBubbles",
                                            Budget = 50,
                                            Height = 5f,
                                            Width = 100f,
                                            Depth = 0f,                                               
                                            Term = 1.0f,                                            
                                            ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.SmallBubbles"),
                                            BlendMode = EmitterBlendMode.Alpha,
                                            ReleaseColour = new ColourRange { Red = 1.0f, Green = 1.0f, Blue = 1.0f },
                                            ReleaseOpacity = 1.0f,
                                            ReleaseQuantity = 3,
                                            ReleaseRotation = new RotationRange 
                                                                {
                                                                    Roll = new Range(0f, 1.5f)
                                                                },
                                            ReleaseScale = new Range(40f, 56f),
                                            ReleaseSpeed = new Range(0f, 25f),
                                            
                                            Modifiers = new ModifierCollection
                                                            {
                                                                new OpacityInterpolator2
                                                                    {
                                                                        InitialOpacity = 1.0f,
                                                                        FinalOpacity = 0.5f
                                                                    },
                                                                new LinearGravityModifier
                                                                {
                                                                    GravityVector = new Vector3(0f, -1f, 0f),
                                                                    Strength = 150f
                                                                },
                                                            },

                                        },                           

                                    new CircleEmitter 
                                        {
                                            Name = "Bubbles",
                                            Budget = 50,
                                            Term = 1.5f,
                                            Radiate = true,
                                            Radius = 50f,
                                            Shell = true,
                                            ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Bubble"),
                                            BlendMode = EmitterBlendMode.Alpha,
                                            ReleaseColour = new ColourRange { Blue = new Range(0.66f, 1.0f), Red = 57f, Green = new Range(0.24f, 0.64f) },
                                            ReleaseOpacity = 1.0f,
                                            ReleaseQuantity = 2,
                                            ReleaseRotation = new RotationRange 
                                                                {
                                                                    Roll = 0f
                                                                },
                                            ReleaseScale = new Range(24f, 40f),
                                            ReleaseSpeed = new Range(0f, 25f),
                                            
                                            Modifiers = new ModifierCollection
                                                            {
                                                                new OpacityInterpolator2
                                                                    {
                                                                         InitialOpacity = 1.0f,
                                                                        FinalOpacity = 0.5f
                                                                    },
                                                                new LinearGravityModifier
                                                                {
                                                                    GravityVector = new Vector3(0f, -1f, 0f),
                                                                    Strength = 150f
                                                                }
                                                            },

                                        },                             
      
                                       
                                },
            };

            effect.Emitters["Bubbles"].Controllers.AddFirst(new CooldownController { CooldownPeriod = 0.15f });
            effect.Emitters["SmallBubbles"].Controllers.AddFirst(new CooldownController { CooldownPeriod = 0.1f });

            foreach (var emitter in effect.Emitters)
            {
                emitter.Initialise();
                // emitter.Controllers.AddLast(new CooldownController { CooldownPeriod = 0.5f });
            }

            return effect;
        }
コード例 #4
0
        public ParticleEffect CreateEffect(IResourceDictionary resourceDictionary)
        {
            var effect = new ParticleEffect
            {
                Emitters = new EmitterCollection
                                {            
                                     new PointEmitter
                                        {
                                            Budget = 15,
                                            Term = 0.75f,                                            
                                            ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Star"),
                                            BlendMode = EmitterBlendMode.Alpha,
                                            ReleaseColour = new ColourRange { Red = 1.0f, Green = 0.88f, Blue = 0.75f },
                                            ReleaseOpacity = 1.0f,
                                            ReleaseQuantity = 1,
                                            ReleaseRotation = new RotationRange 
                                                                {
                                                                    Roll = new Range(0f, 0f)
                                                                },
                                            ReleaseScale = new Range(24f, 72f),
                                            ReleaseSpeed = new Range(32f, 160f),
                                            
                                            Modifiers = new ModifierCollection
                                                            {
                                                                new ScaleInterpolator3
                                                                {
                                                                      FinalScale = 16f,
                                                                      InitialScale = 48f,
                                                                      Median = 0.4f,
                                                                      MedianScale = 64f
                                                                },

                                                                new OpacityInterpolator2
                                                                {
                                                                     FinalOpacity = 0f,
                                                                     InitialOpacity = 1f
                                                                },

                                                                new ColourInterpolator2
                                                                {
                                                                    InitialColour = new Vector3(1f, 0.5f, 1f),
                                                                    FinalColour = new Vector3(1f, 0.5f, 0f)
                                                                },

                                                                new DampingModifier
                                                                {
                                                                     DampingCoefficient = 5f
                                                                }
                                                            },
                                        },                           

                                        new PointEmitter
                                        {
                                            Budget = 100,
                                            Term = 1.0f,                                            
                                            ParticleTexture = (Texture2D)resourceDictionary.GetResource("Zazumo.Textures.Particles.Star"),
                                            BlendMode = EmitterBlendMode.Alpha,
                                            ReleaseColour = new ColourRange { Red = 1.0f, Green = 1f, Blue = 1f },
                                            ReleaseOpacity = 1.0f,
                                            ReleaseQuantity = 5,
                                            ReleaseRotation = new RotationRange 
                                                                {
                                                                    Roll = new Range(0f, 0f)
                                                                },
                                            ReleaseScale = new Range(16f, 16f),
                                            ReleaseSpeed = new Range(0f, 48f),
                                            
                                            Modifiers = new ModifierCollection
                                                            {
                                                                new OpacityInterpolator2
                                                                {
                                                                     FinalOpacity = 0f,
                                                                     InitialOpacity = 1f
                                                                },

                                                                new ColourInterpolator2
                                                                {
                                                                    InitialColour = new Vector3(1f, 0.5f, 1f),
                                                                    FinalColour = new Vector3(0.75f, 0.25f, 0f)
                                                                },

                                                            },
                                        },                           
                                },
            };

            foreach (var emitter in effect.Emitters)
            {
                emitter.Initialise();
            }

            return effect;
        }