summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/source/MonoGame.Extended.Particles/Profiles/SprayProfile.cs
blob: 6259210f543865162d8da5aef6a9ea9f3b2d5b82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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));
        }
    }
}