Beispiel #1
0
        public static double GetSecAtBeat(double beat)
        {
            // Determine which BPM change we're on (if any)
            var evt = BpmEvents.Where(x => beat >= x.StartBeat).LastOrDefault();

            if (evt == null)
            {
                evt = BpmEvents[0];
            }

            //double curTime = 0;
            //if (evt.StartBeat > 0)
            //{
            //    // Add up all the time prior
            //    for (int i = 0; i < BpmEvents.Count; i++)
            //    {
            //        if (BpmEvents[i].StartBeat == evt.StartBeat)
            //            i = BpmEvents.Count;
            //        else
            //            curTime = BpmEvents[i + 1].StartSeconds;
            //    }
            //}

            return(evt.StartSeconds + ((beat - evt.StartBeat) / evt.BPM * 60));
        }
Beispiel #2
0
        public static double GetDistAtBeat(double beat)
        {
            // Determine which BPM change we're on (if any)
            var evt = BpmEvents.Where(x => beat >= x.StartBeat).LastOrDefault();

            if (evt == null)
            {
                evt = BpmEvents[0];
            }

            double curDist = 0;

            if (evt.StartBeat > 0)
            {
                // Add up all the distance prior
                for (int i = 0; i < BpmEvents.Count; i++)
                {
                    if (BpmEvents[i].StartBeat == evt.StartBeat)
                    {
                        i = BpmEvents.Count;
                    }
                    else
                    {
                        curDist += (NoteSpeed * GameState.ScrollSpeed * 60 / BpmEvents[i].BPM) * (BpmEvents[i + 1].StartBeat - BpmEvents[i].StartBeat);
                    }
                }
            }

            return(curDist + (NoteSpeed * GameState.ScrollSpeed * 60 / evt.BPM) * (beat - evt.StartBeat));
        }