Update() public method

public Update ( ) : void
return void
示例#1
0
文件: ScoreMode.cs 项目: nobnak/TNR
 void Awake()
 {
     _metronome = new Metronome(HighResTime.UtcNow, 60 * HighResTime.SECOND2TICK / tempo, loop);
     _metronome.Update();
     _lastX = _metronome.x;
     _cubeInfos = new CubeInfo[loop, height];
     _cubeLayerMask = (1 << LayerMask.NameToLayer("CubeMatrix"));
     _audioSources = new AudioSource[nAudioBuffers * height];
     for (var i = 0; i < _audioSources.Length; i++)
         _audioSources[i] = gameObject.AddComponent<AudioSource>();
 }
        internal override void Update()
        {
            UpdatePendingChanges();

            Metronome.Update();

            //todo move internally into AudioEngine
            if (AudioEngine.ActiveTimingPointIndex != lastActiveTimingIndex) //This could be an event-delegate
            {
                lastActiveTimingIndex = AudioEngine.ActiveTimingPointIndex;
                GameBase.EditorControl.TimeSignatureChanged(AudioEngine.TimeSignature);
            }
        }
        public void TestBeat()
        {
            int beatCount = 0;

            DummyMusicController musicController = new DummyMusicController();
            Metronome            metronome       = new Metronome()
            {
                AudioController = musicController
            };

            metronome.OnBeat += () => beatCount++;

            Assert.AreEqual(TimingControlPoint.DefaultBeatLength, metronome.BeatLength.Value, Delta);
            Assert.AreEqual(0, beatCount);

            metronome.Update();
            Assert.AreEqual(1, beatCount);

            musicController.CurrentTime = metronome.BeatLength.Value * 0.5f;
            metronome.Update();
            Assert.AreEqual(1, beatCount);

            musicController.CurrentTime = metronome.BeatLength.Value;
            metronome.Update();
            Assert.AreEqual(2, beatCount);

            musicController.CurrentTime = metronome.BeatLength.Value * 1.5f;
            metronome.Update();
            Assert.AreEqual(2, beatCount);

            musicController.CurrentTime = metronome.BeatLength.Value * 2f;
            metronome.Update();
            Assert.AreEqual(3, beatCount);

            musicController.Stop();
            metronome.Update();
            Assert.AreEqual(4, beatCount);

            musicController.Seek(metronome.BeatLength.Value * 3f);
            metronome.Update();
            Assert.AreEqual(5, beatCount);

            musicController.CurrentTime = metronome.BeatLength.Value * 4f;
            metronome.Update();
            Assert.AreEqual(6, beatCount);
        }
示例#4
0
        /// <inheritdoc />
        ///  <summary>
        ///  </summary>
        ///  <param name="gameTime"></param>
        public override void Update(GameTime gameTime)
        {
            if (!Exiting)
            {
                PlayHitsounds();

                if (ConfigManager.EditorPlayMetronome.Value)
                {
                    Metronome.Update(gameTime);
                }

                if (AudioEngine.Track.IsDisposed)
                {
                    AudioEngine.LoadCurrentTrack();
                }

                HandleInput(gameTime);
            }

            base.Update(gameTime);
        }
示例#5
0
 protected virtual void Update()
 {
     metronome.Update();
 }
        public void TestBeatIndex()
        {
            DummyMusicController musicController = new DummyMusicController();
            Metronome            metronome       = new Metronome()
            {
                AudioController = musicController
            };

            Assert.AreEqual(BeatFrequency.Full, metronome.Frequency.Value);
            Assert.AreEqual((int)TimeSignatureType.Quadruple * (int)BeatFrequency.Full, metronome.BeatsInInterval.Value);
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            musicController.CurrentTime = metronome.BeatLength.Value * 0.5f;
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            for (int i = 1; i < 4; i++)
            {
                musicController.CurrentTime = metronome.BeatLength.Value * i;
                metronome.Update();
                Assert.AreEqual(i, metronome.BeatIndex.Value);
            }

            musicController.CurrentTime = metronome.BeatLength.Value * 4f;
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            metronome.Frequency.Value   = BeatFrequency.Half;
            musicController.CurrentTime = metronome.BeatLength.Value * 8f;
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            for (int i = 1; i < 8; i++)
            {
                musicController.CurrentTime = metronome.BeatLength.Value * (i + 8f);
                metronome.Update();
                Assert.AreEqual(i, metronome.BeatIndex.Value);
            }

            musicController.CurrentTime = metronome.BeatLength.Value * 16f;
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            metronome.Frequency.Value   = BeatFrequency.Quarter;
            musicController.CurrentTime = metronome.BeatLength.Value * 32f;
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            for (int i = 1; i < 16; i++)
            {
                musicController.CurrentTime = metronome.BeatLength.Value * (i + 32f);
                metronome.Update();
                Assert.AreEqual(i, metronome.BeatIndex.Value);
            }

            musicController.CurrentTime = metronome.BeatLength.Value * 48f;
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            musicController.CurrentTime = metronome.BeatLength.Value * 49f;
            metronome.Update();
            Assert.AreEqual(1, metronome.BeatIndex.Value);

            musicController.Stop();
            metronome.Update();
            Assert.AreEqual(0, metronome.BeatIndex.Value);

            musicController.Seek(metronome.BeatLength.Value * 8);
            metronome.Update();
            Assert.AreEqual(8, metronome.BeatIndex.Value);
        }