Exemplo n.º 1
0
        public void BeatTimer_ResumeTimer()
        {
            var beatTimer = new BeatTimer(60);

            beatTimer.StartTimer();
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();
            beatTimer.PauseTimer();
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();
            beatTimer.ResumeTimer();
            beatTimer.OnQuarterBeat();

            Assert.AreEqual(3 * 250, beatTimer.Time.Milliseconds);


            beatTimer = new BeatTimer(60);

            beatTimer.StartTimer();
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();
            beatTimer.PauseTimer(1111, -3);
            beatTimer.OnQuarterBeat();
            beatTimer.ResumeTimer(42, 8);

            Assert.AreEqual((2 - 3 - 8) * 250 + 1111 - 42, beatTimer.Time.Milliseconds);
        }
Exemplo n.º 2
0
        public void BeatTimer_PauseTimer()
        {
            var beatTimer = new BeatTimer(60);

            beatTimer.StartTimer();
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();
            beatTimer.PauseTimer();
            Assert.IsTrue(beatTimer.IsPaused);
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();

            Assert.AreEqual(2 * 250, beatTimer.Time.Milliseconds);


            beatTimer = new BeatTimer(60);

            beatTimer.StartTimer();
            beatTimer.OnQuarterBeat();
            beatTimer.OnQuarterBeat();
            beatTimer.PauseTimer(1111, -3);
            beatTimer.OnQuarterBeat();

            Assert.AreEqual((2 - 3) * 250 + 1111, beatTimer.Time.Milliseconds);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Offsets relative to the last beat
        /// </summary>
        /// <param name="millisecondsOffset"></param>
        /// <param name="quarterBeatsOffset"></param>
        public void StartLoad(int millisecondsOffset = 0, int quarterBeatsOffset = 0)
        {
            var beatTimeOffset = new BeatTime(_beatTimer.Bpm, quarterBeatsOffset, millisecondsOffset);

            DoAfterUpdate(() =>
            {
                if (!IsRunning || IsGameTimePaused)
                {
                    return;
                }

                _speedrunStopwatch.Pause((int)beatTimeOffset.Milliseconds);
                _beatTimer.PauseTimer(millisecondsOffset, quarterBeatsOffset);
            });
        }