SmokePlumeParticleSystem.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #region File Description
  2. //-----------------------------------------------------------------------------
  3. // SmokePlumeParticleSystem.cs
  4. //
  5. // Microsoft XNA Community Game Platform
  6. // Copyright (C) Microsoft Corporation. All rights reserved.
  7. //-----------------------------------------------------------------------------
  8. #endregion
  9. #region Using Statements
  10. using System;
  11. using Microsoft.Xna.Framework;
  12. using Microsoft.Xna.Framework.Content;
  13. using Microsoft.Xna.Framework.Graphics;
  14. #endregion
  15. namespace Particle3DSample
  16. {
  17. /// <summary>
  18. /// Custom particle system for creating a giant plume of long lasting smoke.
  19. /// </summary>
  20. class SmokePlumeParticleSystem : ParticleSystem
  21. {
  22. public SmokePlumeParticleSystem(Game game, ContentManager content)
  23. : base(game, content)
  24. { }
  25. protected override void InitializeSettings(ParticleSettings settings)
  26. {
  27. settings.TextureName = "smoke";
  28. settings.MaxParticles = 600;
  29. settings.Duration = TimeSpan.FromSeconds(10);
  30. settings.MinHorizontalVelocity = 0;
  31. settings.MaxHorizontalVelocity = 15;
  32. settings.MinVerticalVelocity = 10;
  33. settings.MaxVerticalVelocity = 20;
  34. // Create a wind effect by tilting the gravity vector sideways.
  35. settings.Gravity = new Vector3(-20, -5, 0);
  36. settings.EndVelocity = 0.75f;
  37. settings.MinRotateSpeed = -1;
  38. settings.MaxRotateSpeed = 1;
  39. settings.MinStartSize = 4;
  40. settings.MaxStartSize = 7;
  41. settings.MinEndSize = 35;
  42. settings.MaxEndSize = 140;
  43. }
  44. }
  45. }