Exemplo n.º 1
0
 private void HandleRewind(GameTime gameTime)
 {
     if (!helpMenuVisible && !fileDialogVisible)
     {
         if (timeSinceLastRewindCycle > 1.0 / rewindFrequency)
         {
             timeSinceLastRewindCycle = 0;
             if (Keyboard.GetState().IsKeyDown(rewindKey))
             {
                 isRewinding = true;
                 cpu.ApplyState(RewindManager.Rewind());
             }
             else
             {
                 isRewinding = false;
                 if (!frameAdvance && !isPaused)
                 {
                     RewindManager.Record(cpu.GetState());
                 }
             }
         }
         else
         {
             timeSinceLastRewindCycle += gameTime.ElapsedGameTime.TotalSeconds;
         }
     }
 }
Exemplo n.º 2
0
    private IEnumerator repeatedlyRewind()
    {
        RewindScreen.SetActive(true);
        rewindSound.pitch = 0.5f;
        rewindSound.Play();

        RewindManager.Rewind();
        float x = 1;

        while (true)
        {
            float waitTime = (float)(0.5 / Math.Sqrt(4 * x));
            yield return(new WaitForSeconds(waitTime));

            x += waitTime;
            rewindSound.pitch = x / 2;
            RewindManager.Rewind();
        }
    }
Exemplo n.º 3
0
 private void Rewind()
 {
     RewindManager.Rewind();
 }