Scale Particles without Maintaining Aspect Ratio (#483)

* Update ParticleReleaseParameters.cs

Add parameters to allow scaling particles without maintaining aspect ratio

* Update ParticleEmitter.cs

Scale particles without maintaining aspect ratio.
This commit is contained in:
Martin Stauber
2019-02-04 21:13:12 +10:00
committed by Dylan Wilson
parent 4c34ff9705
commit cadaed7fea
2 changed files with 20 additions and 4 deletions
@@ -196,8 +196,17 @@ namespace MonoGame.Extended.Particles
_random.NextColor(out particle->Color, Parameters.Color);
particle->Opacity = _random.NextSingle(Parameters.Opacity);
var scale = _random.NextSingle(Parameters.Scale);
particle->Scale = new Vector2(scale, scale);
if(Parameters.MaintainAspectRatioOnScale)
{
var scale = _random.NextSingle(Parameters.Scale);
particle->Scale = new Vector2(scale, scale);
}
else
{
particle->Scale = new Vector2(_random.NextSingle(Parameters.ScaleX), _random.NextSingle(Parameters.ScaleY));
}
particle->Rotation = _random.NextSingle(Parameters.Rotation);
particle->Mass = _random.NextSingle(Parameters.Mass);
particle->LayerDepth = layerDepth;
@@ -209,4 +218,4 @@ namespace MonoGame.Extended.Particles
return Name;
}
}
}
}
@@ -14,6 +14,9 @@ namespace MonoGame.Extended.Particles
Scale = new Range<float>(1f, 1f);
Rotation = new Range<float>(-MathHelper.Pi, MathHelper.Pi);
Mass = 1f;
MaintainAspectRatioOnScale = true;
ScaleX = new Range<float>(1f, 1f);
ScaleY = new Range<float>(1f, 1f);
}
public Range<int> Quantity { get; set; }
@@ -23,5 +26,9 @@ namespace MonoGame.Extended.Particles
public Range<float> Scale { get; set; }
public Range<float> Rotation { get; set; }
public Range<float> Mass { get; set; }
public bool MaintainAspectRatioOnScale { get; set; }
public Range<float> ScaleX { get; set; }
public Range<float> ScaleY { get; set; }
}
}
}