blob: e9ed216ea164bd09463389ca2a047320d6139d24 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using Microsoft.Xna.Framework;
namespace MonoGame.Extended.Particles.Modifiers
{
public class LinearGravityModifier : Modifier
{
public Vector2 Direction { get; set; }
public float Strength { get; set; }
public override unsafe void Update(float elapsedSeconds, ParticleBuffer.ParticleIterator iterator)
{
var vector = Direction*(Strength*elapsedSeconds);
while (iterator.HasNext)
{
var particle = iterator.Next();
particle->Velocity = new Vector2(
particle->Velocity.X + vector.X*particle->Mass,
particle->Velocity.Y + vector.Y*particle->Mass);
}
}
}
}
|