Exemplo n.º 1
0
        private void UpdatePointer(DeltaTime deltaTime)
        {
            float target        = targets[CurrentStreak] + (rng.Next(0, wiggle[CurrentStreak]) - wiggle[CurrentStreak] / 2);
            float rotationSpeed = speeds[CurrentStreak];

            if (rotation != target)
            {
                float dif  = target - rotation;
                float move = (rotationSpeed * deltaTime.Seconds);

                if (Util.AbsoluteFloat(dif) < Util.AbsoluteFloat(move))
                {
                    move = Util.AbsoluteFloat(dif);
                }

                if (dif < 0)
                {
                    move *= -1;
                }

                rotation += move;
            }

            endPoint.X = centerPoint.X + (int)(radius * Math.Cos(Util.DegreeToRadian(rotation + 90)));
            endPoint.Y = centerPoint.Y + (int)(radius * Math.Sin(Util.DegreeToRadian(rotation + 90)));
        }