Esempio n. 1
0
 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();
 }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }