diff options
Diffstat (limited to 'Plugins/MonoGame.Extended/source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs')
-rw-r--r-- | Plugins/MonoGame.Extended/source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs new file mode 100644 index 0000000..6259210 --- /dev/null +++ b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs @@ -0,0 +1,20 @@ +using System; +using Microsoft.Xna.Framework; + +namespace MonoGame.Extended.Particles.Profiles +{ + public class SprayProfile : Profile + { + public Vector2 Direction { get; set; } + public float Spread { get; set; } + + public override void GetOffsetAndHeading(out Vector2 offset, out Vector2 heading) + { + var angle = (float) Math.Atan2(Direction.Y, Direction.X); + + angle = Random.NextSingle(angle - Spread/2f, angle + Spread/2f); + offset = Vector2.Zero; + heading = new Vector2((float) Math.Cos(angle), (float) Math.Sin(angle)); + } + } +}
\ No newline at end of file |