public void AddEmitterGroup(EmitterGroup group) { _groups.Add(group.Name, group); foreach (Modifier mod in _modifiers) { group.ApplyModifier(mod); } }
protected override void Initialize() { //Creating the EmitterGroup, it must be given a name. group = new EmitterGroup("test"); //Create two simple spray emitters. emitter1 = new SprayEmitter(1000, -MathHelper.PiOver2, MathHelper.Pi); emitter1.ParticleSpeed = 100f; emitter1.ParticleColor = Color.SteelBlue; emitter1.Position.Y = -50f; emitter2 = new SprayEmitter(1000, MathHelper.PiOver2, MathHelper.Pi); emitter2.ParticleSpeed = 100f; emitter2.ParticleColor = Color.Tomato; emitter2.Position.Y = 50f; //We add the Emitters to the EmitterGroup (instead of adding them to the //ParticleSystem). group.AddEmitter(emitter1); group.AddEmitter(emitter2); //Now we can apply Modifiers to the EmitterGroup. Notice that there is a //seperate Modifier for GroupMouseController. As the position of Emitters is //relative to the position of the EmitterGroup, applying a regalar //EmitterMouseController would result in undesired results... This modifier //adjusts the position of the EmitterGroup, and not the Emitters. group.ApplyModifier(new RandomScaleModifier(.1f, 1f)); group.ApplyModifier(new GroupMouseController(true)); //Finally we add the EmitterGroup to the ParticleSystem. system.AddEmitterGroup(group); //Of course you can choose to ignore EmitterGroups, and add Emitters to the //ParticleSystem directly instead. However you should take care to never //add an Emitter to more than one container. base.Initialize(); }