public void Start( float duration, float frequency, WigglerMode mode = WigglerMode.Linear, bool removeOnCompletion = false) { _wavelength = MathHelper.TwoPi * frequency; _increment = 1f / Math.Max(Math.Abs(duration), float.Epsilon); Mode = mode; RemoveOnCompletion = removeOnCompletion; Start(); }
void Initialize( float duration, float frequency, WigglerMode mode, Action <float> onUpdate, Action onFinished, bool removeOnCompletion, bool canStart = false) { _wavelength = MathHelper.TwoPi * frequency; _increment = 1f / Math.Max(Math.Abs(duration), float.Epsilon); Counter = _sineCounter = 0f; Mode = mode; OnUpdate = onUpdate; OnFinished = onFinished; RemoveOnCompletion = removeOnCompletion; IsActive = false; if (canStart) { Start(); } }
public static Wiggler CreateAndApply( Entity entity, float duration, float frequency, WigglerMode mode, Action <float> onUpdate, Action onFinished = null, bool removeOnCompletion = true) { var wiggler = Create( duration, frequency, mode, onUpdate, onFinished, removeOnCompletion, true); if (entity != null) { entity.Components.Add(wiggler); } return(wiggler); }
public static Wiggler Create( float duration, float frequency, WigglerMode mode, Action <float> onUpdate, Action onFinished, bool removeOnCompletion, bool canStart = false) { var wiggler = Cache.Count > 0 ? Cache.Pop() : new Wiggler(); wiggler.Initialize( duration, frequency, mode, onUpdate, onFinished, removeOnCompletion, canStart); return(wiggler); }